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.