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.

Siehe Auch: