Java:
Einen HTTP-Request senden
So geht’s:
Hier ist ein einfaches Beispiel, wie man eine GET-Anfrage in Java sendet, um den Inhalt einer Webseite zu holen:
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class HttpGetRequest {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.build();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
Sample Output:
200
<!doctype html>...
Deep Dive:
HTTP-Anfragen gehen zurück bis zur Entstehung des Webs in den 1990ern. Sie folgen einem Request-Response-Modell. Java bietet mehrere Möglichkeiten, HTTP-Anfragen zu senden – HttpURLConnection
, externe Bibliotheken wie Apache HttpClient, und ab Java 11 gibt’s die java.net.http
API, die modern und einfach zu bedienen ist.
Während HttpURLConnection
Basisfunktionalität bietet, ermöglicht die java.net.http
API mehr Kontrolle und Asynchronität. Die Alternativen dazu, wie OkHttpClient oder Apache HttpClient, bieten eigene Vorteile, wie etwa komplexere Konfigurationen und Unterstützung für ältere Java-Versionen.
Tiefer gehend, für POST-Anfragen kann man HttpRequest.BodyPublishers
verwenden, um Content mitzusenden. Für Asynchronität bietet HttpClient
die Funktion sendAsync()
an, welche mit CompletableFuture
arbeitet.