16.10 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.
16.10.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 |
Beispiel Sende eine Datei datei an die gegebene url. Als Content-Type wird XML gesetzt.
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 addParameter() 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.
|
16.10.2 Jakarta Commons Net
 
Die Bibliothek Jakarta Commons Net (http://jakarta.apache.org/commons/net/index.html) 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.
|