Wie kann man den HTTP-Responsecode einer Internetverbindung ermitteln?
Die Klassen java.net.HttpURLConnection
und
deren Elternklasse URLConnection
stellen
Methoden bereit, um eine HTTP-Verbindung zu erzeugen und
zu verwalten. Während URLConnection
für die zugrunde liegende Verbindung verantwortlich
ist, stellt HttpURLConnectio
die
HTTP-spezifischen Routinen zur Verfügung.
Die Verbindung wird über die Methode openConnection()
der Klasse URL
erzeugt. Hierzu muss mittels
der Webadresse zunächst ein gültiges
URL-Objekt erzeugt werden. Die hierbei möglichen
Syntaxfehler werden durch eine Exception innerhalb eines
try-catch-Blocks abgefangen.
Die im Beispiel in main()
erzeugte URL wird direkt als Parameter an die Methode getHttpStatus()
übergeben [11].
import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class HttpStatusCode { public static void main(String[] args) { String httpAddress = "https://javabeginners.de/Netzwerk/index.php"; try { getHttpStatus(new URL(httpAddress)); } catch (MalformedURLException e) { e.printStackTrace(); } } private static void getHttpStatus(URL url) { try { HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.connect(); int code = con.getResponseCode(); System.out.println(code + " " + con.getResponseMessage()); // 200 OK } catch (IOException e) { e.printStackTrace(); } } }
Innerhalb von getHttpStatus()
wird
zunächst ein URLConnection
-Objekt
erzeugt [19], über das durch connect()
eine Verbindung zum entfernten Ziel aufgebaut wird [20].
In der Folge wird das selbe Objekt verwendet, um erst
den Response-Code mittels getResponseCode()
[21] und anschließend die zugehörige
Textnachricht durch getResponseMessage()
erfasst werden. Der Verbindungsaufbau muss dabei
wiederum gegen das Auftreten von IO-Fehlern abgesichert
werden.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.