1 #include
"include/layout.wml"
3 <set-var last-modified-author=
"prk">
4 <subject "GNU Classpath inetlib">
7 <boxtitle><a name=
"main">Classpath::inetlib
</a></boxtitle>
12 GNU inetlib is a library of clients for common internet protocols.
13 The following protocols are currently supported:
17 <li>Hypertext Transfer Protocol (HTTP)
</li>
18 <li>File Transfer Protocol (FTP)
</li>
19 <li>Simple Mail Transfer Protocol (SMTP)
</li>
20 <li>Internet Message Access Protocol (IMAP)
</li>
21 <li>Post Office Protocol (POP)
</li>
22 <li>Network News Transfer Protocol (NNTP)
</li>
23 <li>Lightweight Directory Access Protocol (LDAP) (alpha)
</li>
29 The inetlib library is similar in intent to the Python internet protocols
30 library - the API is as close as possible to the intent of the underlying
31 protocol design. This allows for very efficient coding of user agents.
35 Additionally, inetlib includes URLStreamHandler implementations for some
36 of the protocols. These can be used to add support for the corresponding
37 URL scheme to the java.net.URL class.
43 <boxtitle><a name=
"http">Classpath::inetlib::HTTP
</a></boxtitle>
48 The inetlib HTTP client supports HTTP/
1.1 as described in RFC
2616, with
49 the following features:
53 <li>Persistent connections
</li>
54 <li>Basic and Digest authentication (RFC
2617)
</li>
57 <li>HTTP/
1.0 compatibility
</li>
58 <li>Support for WebDAV methods and other HTTP extensions
</li>
59 <li>Automatic decoding of the chunked transfer-coding
</li>
60 <li>Parsing of HTTP date headers
</li>
61 <li>Support for the
100-continue expectation
</li>
65 The design of the API is similar to the
66 <createlink url=
"http://www.webdav.org/neon/" name=
"neon">
67 WebDAV/HTTP library. A logical connection to the server is instantiated,
68 and multiple requests can be issued on this connection. Each request has
69 an atomic
<code>dispatch
</code> method which returns the response.
70 All I/O, authentication, etc is handled by registering callback objects
71 with the request prior to dispatch, which are notified during the dispatch
72 procedure as necessary. Simple byte-array content callbacks are supplied
73 which can manage any request/response content that fits in available memory.
77 An URL stream handler is provided, supporting the full HttpURLConnection
84 <boxtitle><a name=
"ftp">Classpath::inetlib::FTP
</a></boxtitle>
89 The inetlib FTP client supports both active and passive mode FTP and all
90 transfer modes and representation types. The client implements RFC
959,
91 with the following exceptions and limitations:
95 <li>Only one concurrent transfer connection is supported
</li>
96 <li>The STAT, HELP, SITE, SMNT, and ACCT commands are not supported
</li>
97 <li>The TYPE command does not allow alternatives to the default bytesize
98 (Non-print), and local bytesize is not supported
</li>
102 An URL stream handler is provided, which allows the setting of transfer modes
103 and representation types by means of the
<code>setRequestProperty
</code>
110 <boxtitle><a name=
"smtp">Classpath::inetlib::SMTP
</a></boxtitle>
115 The inetlib SMTP client fully implements RFC
2821 including the ESMTP
120 The client also implements TLS negotiation (RFC
3207) and SASL
121 authentication (RFC
2554).
127 <boxtitle><a name=
"imap">Classpath::inetlib::IMAP
</a></boxtitle>
132 The inetlib IMAP client fully implements IMAP4rev1 and includes the
137 <li>Extensible authentication using any available SASL mechanism
</li>
138 <li>TLS negotiation (RFC
2595)
</li>
139 <li>Automatic UTF-
7imap folder name decoding/encoding
</li>
140 <li>IMAP over SSL
</li>
146 <boxtitle><a name=
"pop3">Classpath::inetlib::POP3
</a></boxtitle>
151 The inetlib POP client implements version
3 only, as specified in RFC
1939,
152 with the exception of the no-arg LIST and UIDL commands (use STAT followed
153 by multiple LIST and/or UIDL instead).
154 It supports the following features:
158 <li>The POP3 extension mechanism CAPA
</li>
159 <li>Extensible authentication using any available SASL mechanism via
160 the AUTH mechanism (RFC
1734)
</li>
161 <li>TLS negotiation (RFC
2595)
</li>
167 <boxtitle><a name=
"nntp">Classpath::inetlib::NNTP
</a></boxtitle>
172 The inetlib NNTP client implements all of RFC
977, and many of the common
173 NNTP extensions specified in RFC
2980. It supports the XOVER and XHDR
174 commands, and simple authentication.
178 There is also a newsrc mechanism for storing newsgroup subscriptions and read
179 articles in an implementation-independent manner, including a file-based