Heim Java javaLernprogramm Senden Sie HTTP-Anfragen und verarbeiten Sie asynchrone Antworten mit dem neuen HttpClient in Java 13

Senden Sie HTTP-Anfragen und verarbeiten Sie asynchrone Antworten mit dem neuen HttpClient in Java 13

Jul 31, 2023 pm 04:39 PM
java httpclient 异步响应处理

Senden Sie HTTP-Anfragen und verarbeiten Sie asynchrone Antworten mit dem neuen HttpClient in Java 13.

In Java 13 wurde eine neue HttpClient-API eingeführt, die einen voll ausgestatteten HTTP-Client bereitstellt, der HTTP-Anfragen senden und die zurückgegebene asynchrone Antwort verarbeiten kann. Diese neue HttpClient-API ist sehr einfach und flexibel zu verwenden und bequemer als die vorherige HttpURLConnection.

Zuerst müssen wir eine neue HttpClient-Instanz in der Java 13-Umgebung erstellen. Sie können den folgenden Code verwenden, um HttpClient zu erstellen:

HttpClient httpClient = HttpClient.newHttpClient();
Nach dem Login kopieren

Als nächstes können wir das erstellte HttpClient-Objekt verwenden, um HTTP-Anfragen zu senden. Wir können GET-Anfragen, POST-Anfragen usw. senden. Am Beispiel des Sendens einer GET-Anfrage können wir den folgenden Codeausschnitt verwenden:

URI uri = URI.create("http://www.example.com");
HttpRequest request = HttpRequest.newBuilder()
                .uri(uri)
                .build();
Nach dem Login kopieren

Im obigen Code erstellen wir ein URI-Objekt, um die angeforderte URL darzustellen, und verwenden die Methode HttpRequest.newBuilder(), um ein HttpRequest-Objekt zu erstellen . Anschließend können wir die sendAsync()-Methode des HttpClient-Objekts verwenden, um eine asynchrone Anfrage zu senden und ein CompletableFuture-Objekt abzurufen, über das die asynchrone Antwort verarbeitet werden kann.

CompletableFuture<HttpResponse<String>> future = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString());
Nach dem Login kopieren

Im obigen Code verwenden wir die sendAsync()-Methode des HttpClient-Objekts, um die Anfrage zu senden, und übergeben ein HttpResponse.BodyHandlers.ofString()-Objekt, um anzugeben, wie mit der Antwort umgegangen wird (hier wird die Zeichenfolgenform verwendet). . Die Methode sendAsync() gibt sofort ein CompletableFuture-Objekt zurück, das das Ergebnis des asynchronen Vorgangs darstellt. Wir können dieses CompletableFuture-Objekt verwenden, um asynchrone Antworten zu verarbeiten.

Wir können das Warten auf den Abschluss der asynchronen Antwort blockieren und das Antwortobjekt erhalten, indem wir die get()-Methode des CompletableFuture-Objekts aufrufen. Das Folgende ist ein Beispielcode:

try {
    HttpResponse<String> response = future.get();
    System.out.println("Response Code: " + response.statusCode());
    System.out.println("Response Body: " + response.body());
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
Nach dem Login kopieren

Im obigen Code rufen wir die Methode „future.get()“ auf, um das asynchrone Antwortobjekt abzurufen. Wenn der asynchrone Vorgang noch nicht abgeschlossen ist, blockiert die Methode get() und wartet, bis der Vorgang abgeschlossen ist. Sobald der asynchrone Vorgang abgeschlossen ist, können wir das HttpResponse-Objekt verwenden, um den Antwortstatuscode und den Antworttext abzurufen.

Zusätzlich zur Verwendung von CompletableFuture-Objekten können wir auch Rückruffunktionen verwenden, um asynchrone Antworten zu verarbeiten. Die HttpClient-API von Java 13 bietet zwei Möglichkeiten zum Registrieren von Rückruffunktionen, nämlich thenApply() und thenAccept(). Hier ist ein Beispielcode, der thenApply() verwendet:

CompletableFuture<HttpResponse<String>> future = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString());
future.thenApply(response -> {
    System.out.println("Response Code: " + response.statusCode());
    System.out.println("Response Body: " + response.body());
    return response;
});
Nach dem Login kopieren

Mithilfe der thenApply()-Methode können wir eine Rückruffunktion definieren, um asynchrone Antworten zu verarbeiten. Wenn die asynchrone Antwort abgeschlossen ist, wird die Rückruffunktion aufgerufen und wir können die Antwort in der Rückruffunktion verarbeiten.

Zusammenfassend lässt sich sagen, dass das Senden von HTTP-Anfragen und die Verarbeitung asynchroner Antworten in Java 13 mit dem neuen HttpClient sehr einfach ist. Wir erstellen einfach ein HttpClient-Objekt, verwenden es zum Senden der Anfrage und verarbeiten dann die asynchrone Antwort über das CompletableFuture-Objekt oder die Rückruffunktion. Diese neue HttpClient-API bietet sehr flexible und leistungsstarke Funktionen, die die Interaktion mit Webdiensten erleichtern. Gleichzeitig sorgt es für eine bessere Leistung und ein besseres Ressourcenmanagement.

Ich hoffe, dass der Beispielcode in diesem Artikel Ihnen beim Einstieg in die neue HttpClient-API in Java 13 helfen und in tatsächlichen Projekten eine Rolle spielen kann.

Das obige ist der detaillierte Inhalt vonSenden Sie HTTP-Anfragen und verarbeiten Sie asynchrone Antworten mit dem neuen HttpClient in Java 13. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

See all articles