Senden Sie asynchrone HTTP-Anfragen und verarbeiten Sie Antworten mit dem neuen HttpClient in Java 11.
In Java 11 wurde die neue HttpClient-Klasse eingeführt, die leistungsstarke Funktionen zum Senden von HTTP-Anfragen und zum Bearbeiten von Antworten bereitstellt. Im Vergleich zur vorherigen HttpURLConnection ist der neue HttpClient einfacher zu verwenden und unterstützt asynchrone Vorgänge, wodurch die Verarbeitung gleichzeitiger Anforderungen effizienter wird. In diesem Artikel wird erläutert, wie Sie den neuen HttpClient in Java 11 verwenden, um asynchrone HTTP-Anfragen zu senden und die Antworten zu verarbeiten.
Zuerst müssen wir ein HttpClient-Objekt erstellen, das über die Methode HttpClient.newBuilder() erstellt werden kann. Beim Erstellen eines HttpClient-Objekts können wir einige spezifische Parameter angeben, z. B. Timeout, Proxy usw. Hier ist der Beispielcode zum Erstellen eines HttpClient-Objekts:
import java.net.http.HttpClient; HttpClient httpClient = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();
Als nächstes können wir das HttpClient-Objekt verwenden, um HTTP-Anfragen zu senden. In HttpClient gibt es drei Arten von Anfragen: GET, POST und PUT. Wir können die Methode HttpRequest.newBuilder() verwenden, um ein HttpRequest-Objekt zu erstellen und die angeforderte URL, Methode, den Anforderungsheader und andere Parameter anzugeben. Das Folgende ist ein Beispielcode zum Senden einer GET-Anfrage:
import java.net.http.HttpRequest; import java.net.URI; // 发送GET请求 HttpRequest getRequest = HttpRequest.newBuilder() .uri(URI.create("http://example.com/api")) .GET() .build(); // 发送异步请求 httpClient.sendAsync(getRequest, HttpResponse.BodyHandlers.ofString()) .thenApply(HttpResponse::body) .thenAccept(System.out::println);
Im obigen Code geben wir die angeforderte URL über die uri-Methode von HttpRequest.Builder an und erstellen ein HttpRequest-Objekt mithilfe der GET-Methode. Anschließend verwenden wir die sendAsync-Methode von HttpClient, um die Anfrage zu senden, und verwenden HttpResponse.BodyHandlers.ofString(), um anzugeben, wie mit der Antwort umgegangen wird. Schließlich haben wir die Methoden thenApply und thenAccept verwendet, um den Antwortinhalt zu verarbeiten.
Neben GET-Anfragen können wir auch POST- und PUT-Anfragen versenden. Der Beispielcode zum Senden einer POST-Anfrage lautet wie folgt:
import java.net.http.HttpRequest; import java.net.URI; import java.net.http.HttpRequest.BodyPublishers; // 发送POST请求 HttpRequest postRequest = HttpRequest.newBuilder() .uri(URI.create("http://example.com/api")) .header("Content-Type", "application/json") .POST(BodyPublishers.ofString("{"key": "value"}")) .build(); // 发送异步请求 httpClient.sendAsync(postRequest, HttpResponse.BodyHandlers.ofString()) .thenApply(HttpResponse::body) .thenAccept(System.out::println);
Im obigen Code geben wir den Content-Type des Anforderungsheaders als application/json über die Header-Methode von HttpRequest.Builder an und erstellen mithilfe von ein HttpRequest-Objekt POST-Methode. Anschließend haben wir die Anfrage mithilfe der sendAsync-Methode von HttpClient gesendet und mithilfe von HttpResponse.BodyHandlers.ofString() angegeben, wie die Antwort verarbeitet werden soll. Schließlich haben wir die Methoden thenApply und thenAccept verwendet, um den Antwortinhalt zu verarbeiten.
Neben dem Senden von Anfragen und der Verarbeitung von Antworten bietet HttpClient auch einige andere nützliche Methoden, wie z. B. das Festlegen eines Proxys, HTTP-Authentifizierung usw. Einzelheiten finden Sie in der offiziellen Java-Dokumentation.
Zusammenfassend lässt sich sagen, dass die neue HttpClient-Klasse in Java 11 eine bequemere und effizientere Möglichkeit bietet, HTTP-Anfragen zu senden und Antworten zu verarbeiten. Durch die Verwendung der neuen HttpClient-Klasse können wir problemlos asynchrone GET-, POST- und PUT-Anfragen senden und prägnanten Code für die Verarbeitung der Antworten verwenden. Dadurch können Entwickler gleichzeitige Anfragen effizienter bearbeiten und die Anwendungsleistung verbessern.
Referenzlink:
Das obige ist der detaillierte Inhalt vonSenden Sie asynchrone HTTP-Anfragen und verarbeiten Sie Antworten mit dem neuen HttpClient in Java 11. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!