17.9 Apache Jakarta Commons HttpClient und Net 

Das Java-Netzwerkpaket und insbesondere die Klasse URLConnection beziehungsweise HttpConnection bieten Basisfunktionalität für den Zugriff auf Internet-Ressourcen. Allerdings fehlen komfortable Methoden, etwa für Cookies oder Multi-Part Form-Data POST, also Möglichkeiten zum Hochladen von Dateien. Die müsste jeder selbst implementieren, was Zeit und Nerven kostet.
17.9.1 Jakarta Commons HttpClient 

Die Bibliothek Jakarta Commons HttpClient (http://jakarta.apache.org/commons/httpclient/) bietet komfortable Unterstützung für alles Mögliche rund um das HTTP-Protokoll 1.0 und 1.1:
- Alle HTTP-Methoden (GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE)
- Verschlüsselung mit HTTPS (HTTP über SSL)
- Verbindungen durch HTTP-Proxies
- Getunnelte HTTPS-Verbindungen durch HTTP-Proxies, via CONNECT
- Verbindungen mit SOCKS-Proxies (Version 4 und 5)
- Authentifizierung mit BASIC, Digest und NTLM (NT Lan Manager)
- Multi-Part-Form POST
- und vieles mehr
File input = new File( dateiname ); PostMethod post = new PostMethod( url ); post.setRequestBody( new FileInputStream(input) ); if ( input.length() < Integer.MAX_VALUE ) post.setRequestContentLength((int)input.length()); else post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED); post.setRequestHeader( "Content-type", "text/xml; charset=ISO-8859–1" ); HttpClient httpclient = new HttpClient(); httpclient.executeMethod( post ); post.releaseConnection(); Sollen Parameter am Post-Request post festgemacht werden, werden sie einfach mit add-Parameter() hinzugefügt. executeMethod() liefert als Ergebnis einen Status-Code. Ist er ungleich –1, und der Server schickt etwas zurück, so lässt sich das Ergebnis mit getResponseBodyAsString() als String bekommen. |
17.9.2 Jakarta Commons Net 

Die Bibliothek Jakarta Commons Net (http://jakarta.apache.org/commons/net/) implementiert bekannte Internet-Protokolle. Sie ist auf einem viel höheren Abstraktionsniveau als der HTTP-Client und unterstützt folgende Protokolle:
- FTP (File Transfer Protocol). Dient der Dateiübertragung von und zu jedem beliebigen Rechner im Internet.
- TFTP (Trivial File Transfer Protocol). Einfache Variante von FTP ohne Sicherheitsprüfung.
- NNTP (Network News Transfer Protocol). Protokoll zum Versenden und Empfangen von Nachrichten in Diskussionsforen.
- SMTP (Simple Mail Transfer Protocol). Standardprotokoll, mit dem E-Mails auf einen Server übertragen werden.
- POP3 (Post Office Protocol, Version 3). Bisheriges Standardprotokoll, mit dem E-Mails vom Server abgeholt werden.
- Telnet (Terminalemulation). Bietet die Möglichkeit, sich in spezielle Rechner einzuloggen.
- Finger, Whois. Informations- und Nachschlagedienste, um Informationen über Personen einzuholen.
Daneben unterstützt die Bibliothek auch die BSD-R-Kommandos wie rexec, rcmd/rshell und rlogin sowie Time (rdate) und Daytime. Für SMTP und POP3 ist die JavaMail API im Allgemeinen besser geeignet.