Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


13.1.5

HttpURLConnection


Die Klasse HttpURLConnection ist eine besondere Form einer URLConnection, die speziell für die Behandlung von http-Anfragen verwendet wird. Im letzten Abschnitt wurde ein Exemplar der Klasse HttpURLConnection beim Aufruf von openConnection() zurückgeliefert. Im dortigen Beispiel ist es allerdings nicht notwendig, Methoden oder Konstanten von HttpURLConnection zu benutzen. Deswegen wurde dieser Sachverhalt bisher auch nicht weiter betrachtet.

Bei der Verwendung eines anderen Protokolls in der URL wird eine andere Unterklasse von URLConnection bei Aufruf von openConnection() als Ergebnis geliefert. Die Unterklassen für die anderen Protokolle sind allerdings nicht in den Standardpaketen des JDK enthalten und definieren im Gegensatz zu HttpURLConnection auch keine neuen Methoden oder Datenelemente.

HttpURLConnection stellt dem Programmierer Methoden und Konstanten zur Verfügung, die speziell auf das http-Protokoll ausgerichtet sind.

So unterstützt diese Klasse z. B. das Einstellen der verwendeten HTTP-Methode. Die gültigen Werte sind in Tabelle 13.2 zu finden.

Tabelle 13.2: Gültige Methoden des HTTP-Protokolls
GETPUT
POSTDELETE
HEADTRACE
OPTIONS 

Die in der Praxis am meisten verwendeten Methoden sind GET und POST. HEAD ist eine Methode, bei deren Benutzung lediglich der Header einer HTML-Datei vom http-Server zurückgeliefert wird. Dies wird oft dazu benutzt, um zu prüfen, ob Links noch intakt sind. Die übrigen aufgeführten Methoden werden oft bei der Entwicklung von HTTP-Servern angewendet und sind weniger praxisrelevant. Das Einstellen der HTTP-Methode erfolgt mit

  public setRequestMethod(String method)
Wird die HTTP-Methode nicht explizit durch Aufruf von setRequestMethod(String) eingestellt, so wird die GET-Methode verwendet.

Folgendes Beispiel zeigt den Ablauf bei der Benutzung einer HttpURLConnection:
  URL url = new URL("http://www.javasoft.com");
  HttpURLConnection conn = 
         (HttpURLConnection)url.openConnection();
  conn.setRequestMethod("HEAD");
  conn.setUseCaches(false);
  if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
    System.out.println(conn.getResponseMessage());
  }
  else {
    // Verarbeitung des Ergebnisses
  }
Zunächst wird im Beispiel ein URL-Objekt initialisiert, von dem dann anschließend das URLConnection-Objekt abgerufen wird. Da openConnection() ein Exemplar von URLConnection zurückliefert, muss ein Cast in HttpURLConnection durchgeführt werden.

Danach werden auch hier verschiedene Optionen gesetzt. In diesem Fall wird die Methode HEAD für die Übertragung verwendet und die Benutzung von Caches unterbunden. Letzteres kann über die Methode setUseCaches(boolean) eingestellt werden. Diese Methode ist bereits in der Klasse URLConnection definiert. Nach diesen Schritten wird der Ergebniscode des Servers abgefragt. Dies geschieht mit Hilfe der in der Klasse HttpURLConnection definierten Konstanten und der ebenfalls dort definierten Methode getResponseCode(). Im Fehlerfall wird die Fehlermeldung des Servers durch Aufruf der Methode getResponseMessage() auf der Standardausgeabe angezeigt. Im Erfolgsfall können die zurückgelieferten Daten weiterverarbeitet werden.

Material zum Beispiel


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.