Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

Java ist auch eine Insel von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 5 (Tiger-Release)
Buch: Java ist auch eine Insel
gp Kapitel 16 Netzwerkprogrammierung
  gp 16.1 Grundlegende Begriffe
    gp 16.1.1 Internet-Standards und RFC
  gp 16.2 URL-Verbindungen und URL-Objekte
    gp 16.2.1 Die Klasse URL
    gp 16.2.2 Informationen über eine URL
    gp 16.2.3 Der Zugriff auf die Daten über die Klasse URL
    gp 16.2.4 Verbindungen durch einen Proxy-Server
  gp 16.3 Die Klasse URLConnection
    gp 16.3.1 Methoden und Anwendung von URLConnection
    gp 16.3.2 Protokoll- und Content-Handler
    gp 16.3.3 Bilder-Handler
    gp 16.3.4 Zusammenfassung Content- und Protokoll-Handler
    gp 16.3.5 Im Detail: vom URL zu URLConnection
    gp 16.3.6 Der Protokoll-Handler für Jar-Dateien
    gp 16.3.7 Autorisierte URL-Verbindungen mit Basic Authentication
  gp 16.4 Das Common Gateway Interface
    gp 16.4.1 Parameter für ein CGI-Programm
    gp 16.4.2 Kodieren der Parameter für CGI-Programme
    gp 16.4.3 Eine Suchmaschine ansprechen
  gp 16.5 Host- und IP-Adressen
    gp 16.5.1 Lebt der Rechner?
    gp 16.5.2 Das Netz ist Klasse …
    gp 16.5.3 IP-Adresse des lokalen Hosts
    gp 16.5.4 Die Methode getAllByName()
  gp 16.6 NetworkInterface
  gp 16.7 Mit dem Socket zum Server
    gp 16.7.1 Das Netzwerk ist der Computer
    gp 16.7.2 Standarddienste unter Windows nachinstallieren
    gp 16.7.3 Eine Verbindung zum Server aufbauen
    gp 16.7.4 Server unter Spannung: die Ströme
    gp 16.7.5 Die Verbindung wieder abbauen
    gp 16.7.6 Ein kleines Echo – lebt der Rechner noch?
    gp 16.7.7 Blockierendes Lesen
    gp 16.7.8 Informationen über den Socket
    gp 16.7.9 Mit telnet an den Ports horchen
  gp 16.8 Client/Server-Kommunikation
    gp 16.8.1 Warten auf Verbindungen
    gp 16.8.2 Ein Multiplikations-Server
    gp 16.8.3 Von außen erreichbar sein
  gp 16.9 SLL-Verbindungen mit JSSE
  gp 16.10 Apache Jakarta Commons HttpClient und Net
    gp 16.10.1 Jakarta Commons HttpClient
    gp 16.10.2 Jakarta Commons Net
  gp 16.11 E-Mail
    gp 16.11.1 Wie eine E-Mail um die Welt geht
    gp 16.11.2 Das Simple Mail Transfer Protocol und RFC 822
    gp 16.11.3 POP (Post Office Protocol)
    gp 16.11.4 E-Mails versenden mit der JavaMail API von SUN
    gp 16.11.5 MimeMultipart-Nachrichten schicken
    gp 16.11.6 E-Mails mittels POP3 abrufen
    gp 16.11.7 Ereignisse und Suchen
  gp 16.12 Arbeitsweise eines Web-Servers
    gp 16.12.1 Das Hypertext Transfer Protocol (HTTP)
    gp 16.12.2 Anfragen an den Server
    gp 16.12.3 Die Antworten vom Server
  gp 16.13 Datagram-Sockets
    gp 16.13.1 Die Klasse DatagramSocket
    gp 16.13.2 Datagramme und die Klasse DatagramPacket
    gp 16.13.3 Auf ein hereinkommendes Paket warten
    gp 16.13.4 Ein Paket zum Senden vorbereiten
    gp 16.13.5 Methoden der Klasse DatagramPacket
    gp 16.13.6 Das Paket senden
    gp 16.13.7 Die Zeitdienste und ein eigener Server und Client
  gp 16.14 Tiefer liegende Netzwerkeigenschaften
    gp 16.14.1 Internet Control Message Protocol (ICMP)
    gp 16.14.2 MAC-Adresse
  gp 16.15 Multicast-Kommunikation


Galileo Computing

16.10 Apache Jakarta Commons HttpClient und Net  downtop

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.


Galileo Computing

16.10.1 Jakarta Commons HttpClient  downtop

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:

gp  Alle HTTP Methoden (GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE)
gp  Verschlüsselung mit HTTPS (HTTP über SSL)
gp  Verbindungen durch HTTP-Proxies
gp  Getunnelte HTTPS Verbindungen durch HTTP-Proxies, via CONNECT
gp  Verbindungen mit SOCKS-Proxies (Version 4 und 5)
gp  Authentifizierung mit BASIC, Digest und NTLM (NT Lan Manager)
gp  Multi-Part Form POST
gp  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 an den 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, ist das Ergebnis mit getResponseBodyAsString() als String zu bekommen.



Galileo Computing

16.10.2 Jakarta Commons Net  toptop

Die Bibliothek Jakarta Commons Net (http://jakarta.apache.org/commons/net/index.html) implementieren bekannte Internet-Protokolle. Sie sind auf einen viel höheren Abstraktionsniveau als der Http Client und nterstützt nachfolgende Protokolle:

gp  FTP (File Transfer Protocol)
Dient der Dateiübertragung von und zu jedem beliebigen Rechner im Internet.
gp  TFTP (Trivial File Transfer Protocol)
Einfache Variante von FTP ohne Sicherheitsprüfung
gp  NNTP (Network News Transfer Protocol)
Protokoll zum Versenden und Empfangen von Nachrichten in Diskussionsforen
gp  SMTP (Simple Mail Transfer Protocol)
Standardprotokoll, mit dem E-Mails auf einen Server übertragen werden
gp  POP3 (Post Office Protocol, Version 3)
Bisheriges Standardprotokoll, mit dem E-Mails vom Server abgeholt werden
gp  Telnet (Terminalemulation)
Bietet die Möglichkeit, sich in spezielle Rechner einzuloggen.
gp  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.





Copyright © Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de