11.8 Apache HttpComponents und Commons 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 Multi-Part Form-Data POST, also Möglichkeiten zum Hochladen von Dateien. Die müsste jeder selbst implementieren, was Zeit und Nerven kostet.
11.8.1 HttpComponents
Die Bibliothek HttpComponents (http://hc.apache.org/) bietet komfortable Unterstützung für alles Mögliche rund um die HTTP-Protokolle, HTTP-Methoden, Authentifizierung, Sicherheit usw. Es gibt drei Bestandteile von HttpComponents:
- HttpComponents Core
- HttpComponents Client
- HttpComponents AsyncClient
Der Client bietet eine API für HTTP-Anfagen mit
- allen HTTP-Methoden (GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE)
- Verschlüsselung mit HTTPS (HTTP über SSL)
- Verbindungen durch HTTP-Proxies
- getunnelten 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 vielem mehr
HttpComponents Core ist ein Baustein für den Aufbau eigener Client/Server-Protokolle. Synchrone und asynchrone HTTP-Dienste sind damit möglich. HttpComponents AsyncClient ist eine Bibliothek, die auf HttpCore und HttpClient basiert und eine Alternative zu HttpClient, die für eine große Anzahl anfragender Clients optimiert ist.
Eine andere freie HTTP-Bibliothek ist http://github.com/ning/async-http-client. Sie ist recht neu und noch wenig dokumentiert, aber sehr leistungsfähig und vom API-Design her moderner.
11.8.2 Apache Commons Net
Die Bibliothek Apache Commons Net (http://commons.apache.org/net/) implementiert bekannte Internet-Protokolle. Sie ist auf einem viel höheren Abstraktionsniveau angesiedelt als der HTTP-Client und unterstützt folgende Protokolle:
- FTP (File Transfer Protocol): Dient zur 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 rexec, rcmd/rshell und rlogin sowie rdate. Für SMTP und POP3 ist die JavaMail API im Allgemeinen besser geeignet.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.