public class NNTPClient extends NNTP
SocketClient
, you must first connect to the server with connect
before
doing anything, and finally disconnect()
after you're completely finished interacting with the server.
Remember that the isAllowedToPost()
method is defined in NNTP
.
You should keep in mind that the NNTP server may choose to prematurely close a connection if the client has been idle for longer than a given time period or
if the server is being shutdown by the operator or some other reason. The NNTP class will detect a premature NNTP server connection closing when it receives
a NNTPReply.SERVICE_DISCONTINUED
response to a command. When that occurs, the NNTP class
method encountering that reply will throw an NNTPConnectionClosedException
. NNTPConectionClosedException
is
a subclass of IOException
and therefore need not be caught separately, but if you are going to catch it separately, its catch block must
appear before the more general IOException
catch block. When you encounter an
NNTPConnectionClosedException
, you must disconnect the connection with
disconnect()
to properly clean up the system resources used by NNTP. Before disconnecting, you may check
the last reply code and text with getReplyCode
and
getReplyString
.
Rather than list it separately for each method, we mention here that every method communicating with the server and throwing an IOException can also throw a
MalformedServerReplyException
, which is a subclass of IOException. A MalformedServerReplyException will be thrown when the
reply received from the server deviates enough from the protocol specification that it cannot be interpreted in a useful manner despite attempts to be as
lenient as possible.
_commandSupport_, _reader_, _writer_, DEFAULT_PORT
_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL
Constructor and Description |
---|
NNTPClient() |
Modifier and Type | Method and Description |
---|---|
boolean |
authenticate(String username,
String password)
Log into a news server by sending the AUTHINFO USER/AUTHINFO PASS command sequence.
|
boolean |
completePendingCommand()
There are a few NNTPClient methods that do not complete the entire sequence of NNTP commands to complete a transaction.
|
Writer |
forwardArticle(String articleId) |
Iterable<Article> |
iterateArticleInfo(long lowArticleNumber,
long highArticleNumber)
Return article headers for all articles between lowArticleNumber and highArticleNumber, inclusively, using the XOVER command.
|
Iterable<String> |
iterateNewNews(NewGroupsOrNewsQuery query)
List all new articles added to the NNTP server since a particular date subject to the conditions of the specified query.
|
Iterable<String> |
iterateNewNewsgroupListing(NewGroupsOrNewsQuery query)
List all new newsgroups added to the NNTP server since a particular date subject to the conditions of the specified query.
|
Iterable<NewsgroupInfo> |
iterateNewNewsgroups(NewGroupsOrNewsQuery query)
List all new newsgroups added to the NNTP server since a particular date subject to the conditions of the specified query.
|
Iterable<String> |
iterateNewsgroupListing()
List all newsgroups served by the NNTP server.
|
Iterable<String> |
iterateNewsgroupListing(String wildmat)
List the newsgroups that match a given pattern.
|
Iterable<NewsgroupInfo> |
iterateNewsgroups()
List all newsgroups served by the NNTP server.
|
Iterable<NewsgroupInfo> |
iterateNewsgroups(String wildmat)
List the newsgroups that match a given pattern.
|
String |
listHelp()
List the command help from the server.
|
String[] |
listNewNews(NewGroupsOrNewsQuery query)
List all new articles added to the NNTP server since a particular date subject to the conditions of the specified query.
|
NewsgroupInfo[] |
listNewNewsgroups(NewGroupsOrNewsQuery query)
List all new newsgroups added to the NNTP server since a particular date subject to the conditions of the specified query.
|
NewsgroupInfo[] |
listNewsgroups()
List all newsgroups served by the NNTP server.
|
NewsgroupInfo[] |
listNewsgroups(String wildmat)
List the newsgroups that match a given pattern.
|
String[] |
listOverviewFmt()
Send a "LIST OVERVIEW.FMT" command to the server.
|
boolean |
logout()
Logs out of the news server gracefully by sending the QUIT command.
|
Writer |
postArticle()
Post an article to the NNTP server.
|
Reader |
retrieveArticle()
Same as
retrieveArticle((String) null) Note: the return can be cast to a BufferedReader |
Reader |
retrieveArticle(int articleNumber)
Deprecated.
3.0 use
retrieveArticle(long) instead |
Reader |
retrieveArticle(int articleNumber,
ArticlePointer pointer)
Deprecated.
3.0 use
retrieveArticle(long, ArticleInfo) instead |
BufferedReader |
retrieveArticle(long articleNumber)
Same as
retrieveArticle(articleNumber, null) |
BufferedReader |
retrieveArticle(long articleNumber,
ArticleInfo pointer)
Retrieves an article from the currently selected newsgroup.
|
Reader |
retrieveArticle(String articleId)
Same as
retrieveArticle(articleId, (ArticleInfo) null) Note: the return can be cast to a BufferedReader |
BufferedReader |
retrieveArticle(String articleId,
ArticleInfo pointer)
Retrieves an article from the NNTP server.
|
Reader |
retrieveArticle(String articleId,
ArticlePointer pointer)
Deprecated.
3.0 use
retrieveArticle(String, ArticleInfo) instead |
Reader |
retrieveArticleBody()
Same as
retrieveArticleBody(null) Note: the return can be cast to a BufferedReader |
Reader |
retrieveArticleBody(int a)
Deprecated.
3.0 use
retrieveArticleBody(long) instead |
Reader |
retrieveArticleBody(int a,
ArticlePointer ap)
Deprecated.
3.0 use
retrieveArticleBody(long, ArticleInfo) instead |
BufferedReader |
retrieveArticleBody(long articleNumber)
Same as
retrieveArticleBody(articleNumber, null) |
BufferedReader |
retrieveArticleBody(long articleNumber,
ArticleInfo pointer)
Retrieves an article body from the currently selected newsgroup.
|
Reader |
retrieveArticleBody(String articleId)
Same as
retrieveArticleBody(articleId, (ArticleInfo) null) Note: the return can be cast to a BufferedReader |
BufferedReader |
retrieveArticleBody(String articleId,
ArticleInfo pointer)
Retrieves an article body from the NNTP server.
|
Reader |
retrieveArticleBody(String articleId,
ArticlePointer pointer)
Deprecated.
3.0 use
retrieveArticleBody(String, ArticleInfo) instead |
Reader |
retrieveArticleHeader()
Same as
retrieveArticleHeader((String) null) Note: the return can be cast to a BufferedReader |
Reader |
retrieveArticleHeader(int a)
Deprecated.
3.0 use
retrieveArticleHeader(long) instead |
Reader |
retrieveArticleHeader(int a,
ArticlePointer ap)
Deprecated.
3.0 use
retrieveArticleHeader(long, ArticleInfo) instead |
BufferedReader |
retrieveArticleHeader(long articleNumber)
Same as
retrieveArticleHeader(articleNumber, null) |
BufferedReader |
retrieveArticleHeader(long articleNumber,
ArticleInfo pointer)
Retrieves an article header from the currently selected newsgroup.
|
Reader |
retrieveArticleHeader(String articleId)
Same as
retrieveArticleHeader(articleId, (ArticleInfo) null) Note: the return can be cast to a BufferedReader |
BufferedReader |
retrieveArticleHeader(String articleId,
ArticleInfo pointer)
Retrieves an article header from the NNTP server.
|
Reader |
retrieveArticleHeader(String articleId,
ArticlePointer pointer)
Deprecated.
3.0 use
retrieveArticleHeader(String, ArticleInfo) instead |
Reader |
retrieveArticleInfo(int lowArticleNumber)
Deprecated.
3.0 use
retrieveArticleInfo(long) instead |
Reader |
retrieveArticleInfo(int lowArticleNumber,
int highArticleNumber)
Deprecated.
3.0 use
retrieveArticleInfo(long, long) instead |
BufferedReader |
retrieveArticleInfo(long articleNumber)
Return article headers for a specified post.
|
BufferedReader |
retrieveArticleInfo(long lowArticleNumber,
long highArticleNumber)
Return article headers for all articles between lowArticleNumber and highArticleNumber, inclusively.
|
Reader |
retrieveHeader(String a,
int b)
Deprecated.
3.0 use
retrieveHeader(String, long) instead |
Reader |
retrieveHeader(String header,
int lowArticleNumber,
int highArticleNumber)
Deprecated.
3.0 use
retrieveHeader(String, long, long) instead |
BufferedReader |
retrieveHeader(String header,
long articleNumber)
Return an article header for a specified post.
|
BufferedReader |
retrieveHeader(String header,
long lowArticleNumber,
long highArticleNumber)
Return an article header for all articles between lowArticleNumber and highArticleNumber, inclusively.
|
boolean |
selectArticle(ArticleInfo pointer)
Same as
selectArticle((String) null, articleId) . |
boolean |
selectArticle(ArticlePointer pointer)
Deprecated.
3.0 use
selectArticle(ArticleInfo) instead |
boolean |
selectArticle(int a)
Deprecated.
3.0 use
selectArticle(long) instead |
boolean |
selectArticle(int a,
ArticlePointer ap)
Deprecated.
3.0 use
selectArticle(long, ArticleInfo) instead |
boolean |
selectArticle(long articleNumber)
Same as
selectArticle(articleNumber, null) |
boolean |
selectArticle(long articleNumber,
ArticleInfo pointer)
Select an article in the currently selected newsgroup by its number.
|
boolean |
selectArticle(String articleId)
Same as
selectArticle(articleId, (ArticleInfo) null) |
boolean |
selectArticle(String articleId,
ArticleInfo pointer)
Select an article by its unique identifier (including enclosing < and >) and return its article number and id through the pointer parameter.
|
boolean |
selectArticle(String articleId,
ArticlePointer pointer)
Deprecated.
3.0 use
selectArticle(String, ArticleInfo) instead |
boolean |
selectNewsgroup(String newsgroup)
Same as
selectNewsgroup(newsgroup, null) |
boolean |
selectNewsgroup(String newsgroup,
NewsgroupInfo info)
Select the specified newsgroup to be the target of for future article retrieval and posting operations.
|
boolean |
selectNextArticle()
Same as
selectNextArticle((ArticleInfo) null) |
boolean |
selectNextArticle(ArticleInfo pointer)
Select the article following the currently selected article in the currently selected newsgroup and return its number and unique id through the pointer
parameter.
|
boolean |
selectNextArticle(ArticlePointer pointer)
Deprecated.
3.0 use
selectNextArticle(ArticleInfo) instead |
boolean |
selectPreviousArticle()
Same as
selectPreviousArticle((ArticleInfo) null) |
boolean |
selectPreviousArticle(ArticleInfo pointer)
Select the article preceeding the currently selected article in the currently selected newsgroup and return its number and unique id through the pointer
parameter.
|
boolean |
selectPreviousArticle(ArticlePointer pointer)
Deprecated.
3.0 use
selectPreviousArticle(ArticleInfo) instead |
_connectAction_, article, article, article, article, authinfoPass, authinfoUser, body, body, body, body, disconnect, getCommandSupport, getReply, getReplyCode, getReplyString, group, head, head, head, head, help, ihave, isAllowedToPost, last, list, listActive, newgroups, newnews, next, post, quit, sendCommand, sendCommand, sendCommand, sendCommand, stat, stat, stat, stat, xhdr, xover
addProtocolCommandListener, applySocketAttributes, connect, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, fireReplyReceived, getCharset, getCharsetName, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote
public NNTPClient()
public boolean authenticate(String username, String password) throws IOException
username
- a valid usernamepassword
- the corresponding passwordIOException
- on errorpublic boolean completePendingCommand() throws IOException
For example
writer = client.postArticle(); if (writer == null) // failure return false; header = new SimpleNNTPHeader("foobar@foo.com", "Just testing"); header.addNewsgroup("alt.test"); writer.write(header.toString()); writer.write("This is just a test"); writer.close(); if (!client.completePendingCommand()) // failure return false;
NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Writer forwardArticle(String articleId) throws IOException
IOException
public Iterable<Article> iterateArticleInfo(long lowArticleNumber, long highArticleNumber) throws IOException
lowArticleNumber
- lowhighArticleNumber
- highIOException
- if the command failedpublic Iterable<String> iterateNewNews(NewGroupsOrNewsQuery query) throws IOException
query
- The query restricting how to search for new news. You must add at least one newsgroup to the query.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Iterable<String> iterateNewNewsgroupListing(NewGroupsOrNewsQuery query) throws IOException
query
- The query restricting how to search for new newsgroups.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Iterable<NewsgroupInfo> iterateNewNewsgroups(NewGroupsOrNewsQuery query) throws IOException
query
- The query restricting how to search for new newsgroups.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Iterable<String> iterateNewsgroupListing() throws IOException
NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Iterable<String> iterateNewsgroupListing(String wildmat) throws IOException
wildmat
- a pseudo-regex pattern (cf. RFC 2980)IOException
- on errorpublic Iterable<NewsgroupInfo> iterateNewsgroups() throws IOException
NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Iterable<NewsgroupInfo> iterateNewsgroups(String wildmat) throws IOException
wildmat
- a pseudo-regex pattern (cf. RFC 2980)IOException
- on errorpublic String listHelp() throws IOException
NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public String[] listNewNews(NewGroupsOrNewsQuery query) throws IOException
query
- The query restricting how to search for new news. You must add at least one newsgroup to the query.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.iterateNewNews(NewGroupsOrNewsQuery)
public NewsgroupInfo[] listNewNewsgroups(NewGroupsOrNewsQuery query) throws IOException
query
- The query restricting how to search for new newsgroups.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.iterateNewNewsgroups(NewGroupsOrNewsQuery)
,
iterateNewNewsgroupListing(NewGroupsOrNewsQuery)
public NewsgroupInfo[] listNewsgroups() throws IOException
NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.iterateNewsgroupListing()
,
iterateNewsgroups()
public NewsgroupInfo[] listNewsgroups(String wildmat) throws IOException
wildmat
- a pseudo-regex pattern (cf. RFC 2980)IOException
- on erroriterateNewsgroupListing(String)
,
iterateNewsgroups(String)
public String[] listOverviewFmt() throws IOException
null
if the command failedIOException
- on errorpublic boolean logout() throws IOException
IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Writer postArticle() throws IOException
isAllowedToPost()
before trying to post. However, a posting attempt can fail
due to malformed headers.
You must not issue any commands to the NNTP server (i.e., call any (other methods) until you finish writing to the returned Writer instance and close it. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned Writer actually writes directly to the NNTP connection. After you close the writer, you can execute new commands. If you do not follow these requirements your program will not work properly.
Different NNTP servers will require different header formats, but you can use the provided SimpleNNTPHeader
class to
construct the bare minimum acceptable header for most news readers. To construct more complicated headers you should refer to RFC 822. When the Java Mail
API is finalized, you will be able to use it to compose fully compliant Internet text messages. The DotTerminatedMessageWriter takes care of doubling
line-leading dots and ending the message with a single dot upon closing, so all you have to worry about is writing the header and the message.
Upon closing the returned Writer, you need to call completePendingCommand()
to finalize the posting and verify its
success or failure from the server reply.
IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Reader retrieveArticle() throws IOException
retrieveArticle((String) null)
Note: the return can be cast to a BufferedReader
IOException
- if an IO error occurs@Deprecated public Reader retrieveArticle(int articleNumber) throws IOException
retrieveArticle(long)
insteadarticleNumber
- The number of the the article to retrieveIOException
- on error@Deprecated public Reader retrieveArticle(int articleNumber, ArticlePointer pointer) throws IOException
retrieveArticle(long, ArticleInfo)
insteadarticleNumber
- The number of the the article to retrieve.pointer
- A parameter through which to return the article's number and unique idIOException
- on errorpublic BufferedReader retrieveArticle(long articleNumber) throws IOException
retrieveArticle(articleNumber, null)
articleNumber
- the article number to fetchIOException
- if an IO error occurspublic BufferedReader retrieveArticle(long articleNumber, ArticleInfo pointer) throws IOException
articleId
field of the ArticleInfo cannot always be trusted because some NNTP
servers do not correctly follow the RFC 977 reply format.
A DotTerminatedMessageReader is returned from which the article can be read. If the article does not exist, null is returned.
You must not issue any commands to the NNTP server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the NNTP connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
articleNumber
- The number of the the article to retrieve.pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of
server deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned
article information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Reader retrieveArticle(String articleId) throws IOException
retrieveArticle(articleId, (ArticleInfo) null)
Note: the return can be cast to a BufferedReader
articleId
- the article id to retrieveIOException
- if an IO error occurspublic BufferedReader retrieveArticle(String articleId, ArticleInfo pointer) throws IOException
articleId
field of the ArticleInfo
cannot always be trusted because some NNTP servers do not correctly follow the RFC 977 reply format.
A DotTerminatedMessageReader is returned from which the article can be read. If the article does not exist, null is returned.
You must not issue any commands to the NNTP server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the NNTP connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
articleId
- The unique article identifier of the article to retrieve. If this parameter is null, the currently selected article is retrieved.pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of server
deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned article
information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.@Deprecated public Reader retrieveArticle(String articleId, ArticlePointer pointer) throws IOException
retrieveArticle(String, ArticleInfo)
insteadarticleId
- The unique article identifier of the article to retrievepointer
- A parameter through which to return the article's number and unique idIOException
- on errorpublic Reader retrieveArticleBody() throws IOException
retrieveArticleBody(null)
Note: the return can be cast to a BufferedReader
IOException
- if an error occurs@Deprecated public Reader retrieveArticleBody(int a) throws IOException
retrieveArticleBody(long)
insteada
- tbaIOException
- tba@Deprecated public Reader retrieveArticleBody(int a, ArticlePointer ap) throws IOException
retrieveArticleBody(long, ArticleInfo)
insteada
- tbaap
- tbaIOException
- tbapublic BufferedReader retrieveArticleBody(long articleNumber) throws IOException
retrieveArticleBody(articleNumber, null)
articleNumber
- the article numberIOException
- if an error occurspublic BufferedReader retrieveArticleBody(long articleNumber, ArticleInfo pointer) throws IOException
articleId
field of the ArticleInfo cannot always be trusted because
some NNTP servers do not correctly follow the RFC 977 reply format.
A DotTerminatedMessageReader is returned from which the article can be read. If the article does not exist, null is returned.
You must not issue any commands to the NNTP server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the NNTP connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
articleNumber
- The number of the the article whose body is being retrieved.pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of
server deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned
article information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Reader retrieveArticleBody(String articleId) throws IOException
retrieveArticleBody(articleId, (ArticleInfo) null)
Note: the return can be cast to a BufferedReader
articleId
- the article idIOException
- if an error occurspublic BufferedReader retrieveArticleBody(String articleId, ArticleInfo pointer) throws IOException
articleId
field of the ArticleInfo
cannot always be trusted because some NNTP servers do not correctly follow the RFC 977 reply format.
A DotTerminatedMessageReader is returned from which the article can be read. If the article does not exist, null is returned.
You must not issue any commands to the NNTP server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the NNTP connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
articleId
- The unique article identifier of the article whose body is being retrieved. If this parameter is null, the body of the currently
selected article is retrieved.pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of server
deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned article
information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.@Deprecated public Reader retrieveArticleBody(String articleId, ArticlePointer pointer) throws IOException
retrieveArticleBody(String, ArticleInfo)
insteadarticleId
- The unique article identifier of the article to retrievepointer
- A parameter through which to return the article's number and unique idIOException
- on errorpublic Reader retrieveArticleHeader() throws IOException
retrieveArticleHeader((String) null)
Note: the return can be cast to a BufferedReader
IOException
- if an error occurs@Deprecated public Reader retrieveArticleHeader(int a) throws IOException
retrieveArticleHeader(long)
insteada
- tbaIOException
- tba@Deprecated public Reader retrieveArticleHeader(int a, ArticlePointer ap) throws IOException
retrieveArticleHeader(long, ArticleInfo)
insteada
- tbaap
- tbaIOException
- tbapublic BufferedReader retrieveArticleHeader(long articleNumber) throws IOException
retrieveArticleHeader(articleNumber, null)
articleNumber
- the article numberIOException
- if an error occurspublic BufferedReader retrieveArticleHeader(long articleNumber, ArticleInfo pointer) throws IOException
articleId
field of the ArticleInfo cannot always be trusted because
some NNTP servers do not correctly follow the RFC 977 reply format.
A DotTerminatedMessageReader is returned from which the article can be read. If the article does not exist, null is returned.
You must not issue any commands to the NNTP server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the NNTP connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
articleNumber
- The number of the the article whose header is being retrieved.pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of
server deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned
article information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public Reader retrieveArticleHeader(String articleId) throws IOException
retrieveArticleHeader(articleId, (ArticleInfo) null)
Note: the return can be cast to a BufferedReader
articleId
- the article id to fetchIOException
- if an error occurspublic BufferedReader retrieveArticleHeader(String articleId, ArticleInfo pointer) throws IOException
articleId
field of the ArticleInfo
cannot always be trusted because some NNTP servers do not correctly follow the RFC 977 reply format.
A DotTerminatedMessageReader is returned from which the article can be read. If the article does not exist, null is returned.
You must not issue any commands to the NNTP server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The NNTP protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the NNTP connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
articleId
- The unique article identifier of the article whose header is being retrieved. If this parameter is null, the header of the currently
selected article is retrieved.pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of server
deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned article
information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.@Deprecated public Reader retrieveArticleHeader(String articleId, ArticlePointer pointer) throws IOException
retrieveArticleHeader(String, ArticleInfo)
insteadarticleId
- The unique article identifier of the article to retrievepointer
- A parameter through which to return the article's number and unique idIOException
- on error@Deprecated public Reader retrieveArticleInfo(int lowArticleNumber) throws IOException
retrieveArticleInfo(long)
insteadlowArticleNumber
- to fetchIOException
- tba@Deprecated public Reader retrieveArticleInfo(int lowArticleNumber, int highArticleNumber) throws IOException
retrieveArticleInfo(long, long)
insteadlowArticleNumber
- to fetchhighArticleNumber
- to fetchIOException
- on errorpublic BufferedReader retrieveArticleInfo(long articleNumber) throws IOException
articleNumber
- the article to retrieve headers forIOException
- on errorpublic BufferedReader retrieveArticleInfo(long lowArticleNumber, long highArticleNumber) throws IOException
lowArticleNumber
- low numberhighArticleNumber
- high numberIOException
- on error@Deprecated public Reader retrieveHeader(String a, int b) throws IOException
retrieveHeader(String, long)
insteada
- tbab
- tbaIOException
- tba@Deprecated public Reader retrieveHeader(String header, int lowArticleNumber, int highArticleNumber) throws IOException
retrieveHeader(String, long, long)
insteadheader
- the headerlowArticleNumber
- to fetchhighArticleNumber
- to fetchIOException
- on errorpublic BufferedReader retrieveHeader(String header, long articleNumber) throws IOException
header
- the header to retrievearticleNumber
- the article to retrieve the header forIOException
- on errorpublic BufferedReader retrieveHeader(String header, long lowArticleNumber, long highArticleNumber) throws IOException
header
- the headerlowArticleNumber
- to fetchhighArticleNumber
- to fetchIOException
- on errorpublic boolean selectArticle(ArticleInfo pointer) throws IOException
selectArticle((String) null, articleId)
. Useful for retrieving the current article number.pointer
- to the articleIOException
- on error@Deprecated public boolean selectArticle(ArticlePointer pointer) throws IOException
selectArticle(ArticleInfo)
insteadpointer
- A parameter through which to return the article's number and unique idIOException
- on error@Deprecated public boolean selectArticle(int a) throws IOException
selectArticle(long)
insteada
- tbaIOException
- tba@Deprecated public boolean selectArticle(int a, ArticlePointer ap) throws IOException
selectArticle(long, ArticleInfo)
insteada
- tbaap
- tbaIOException
- tbapublic boolean selectArticle(long articleNumber) throws IOException
selectArticle(articleNumber, null)
articleNumber
- the numgerIOException
- on errorpublic boolean selectArticle(long articleNumber, ArticleInfo pointer) throws IOException
articleNumber
- The number of the article to select from the currently selected newsgroup.pointer
- A parameter through which to return the article's number and unique id. Although the articleId field cannot always be trusted
because of server deviations from RFC 977 reply formats, we haven't found a server that misformats this information in response to
this particular command. You may set this parameter to null if you do not desire to retrieve the returned article information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public boolean selectArticle(String articleId) throws IOException
selectArticle(articleId, (ArticleInfo) null)
articleId
- the article IdIOException
- on errorpublic boolean selectArticle(String articleId, ArticleInfo pointer) throws IOException
articleId
- The unique article identifier of the article that is being selectedd. If this parameter is null, the body of the current article is
selectedpointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of server
deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned article
information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.@Deprecated public boolean selectArticle(String articleId, ArticlePointer pointer) throws IOException
selectArticle(String, ArticleInfo)
insteadarticleId
- The unique article identifier of the article to retrievepointer
- A parameter through which to return the article's number and unique idIOException
- on errorpublic boolean selectNewsgroup(String newsgroup) throws IOException
selectNewsgroup(newsgroup, null)
newsgroup
- the newsgroup nameIOException
- if an error occurspublic boolean selectNewsgroup(String newsgroup, NewsgroupInfo info) throws IOException
newsgroup
- The newsgroup to select.info
- A parameter through which the newsgroup information of the selected newsgroup contained in the server reply is returned. Set this to
null if you do not desire this information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.public boolean selectNextArticle() throws IOException
selectNextArticle((ArticleInfo) null)
IOException
- on errorpublic boolean selectNextArticle(ArticleInfo pointer) throws IOException
selectArticle(pointer.articleNumber, pointer)
immediately afterward.
pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of server
deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned article
information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.@Deprecated public boolean selectNextArticle(ArticlePointer pointer) throws IOException
selectNextArticle(ArticleInfo)
insteadpointer
- A parameter through which to return the article's number and unique idIOException
- on errorpublic boolean selectPreviousArticle() throws IOException
selectPreviousArticle((ArticleInfo) null)
IOException
- on errorpublic boolean selectPreviousArticle(ArticleInfo pointer) throws IOException
selectArticle(pointer.articleNumber, pointer)
immediately afterward.
pointer
- A parameter through which to return the article's number and unique id. The articleId field cannot always be trusted because of server
deviations from RFC 977 reply formats. You may set this parameter to null if you do not desire to retrieve the returned article
information.NNTPConnectionClosedException
- If the NNTP server prematurely closes the connection as a result of the client being idle or some other reason
causing the server to send NNTP reply code 400. This exception may be caught either as an IOException or
independently as itself.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.@Deprecated public boolean selectPreviousArticle(ArticlePointer pointer) throws IOException
selectPreviousArticle(ArticleInfo)
insteadpointer
- A parameter through which to return the article's number and unique idIOException
- on errorCopyright © 2001–2022 The Apache Software Foundation. All rights reserved.