Java 11 で新しい HttpClient を使用して、非同期 HTTP リクエストを送信し、応答を処理する
Java 11 では、新しい HttpClient クラスが導入され、HTTP リクエストを送信し、応答を処理するための強力な機能が提供されました。以前の HttpURLConnection と比較して、新しい HttpClient は使いやすく、非同期操作をサポートしているため、同時リクエストの処理がより効率的になります。この記事では、Java 11 の新しい HttpClient を使用して非同期 HTTP リクエストを送信し、応答を処理する方法を紹介します。
まず、HttpClient オブジェクトを作成する必要があります。このオブジェクトは、HttpClient.newBuilder() メソッドを通じて作成できます。 HttpClient オブジェクトを作成するとき、タイムアウト、プロキシなどの特定のパラメーターを指定できます。以下は、HttpClient オブジェクトを作成するサンプル コードです。
import java.net.http.HttpClient; HttpClient httpClient = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();
次に、HttpClient オブジェクトを使用して HTTP リクエストを送信できます。 HttpClient には、GET、POST、PUT の 3 種類のリクエストがあります。 HttpRequest.newBuilder() メソッドを使用して HttpRequest オブジェクトを作成し、要求された URL、メソッド、要求ヘッダー、およびその他のパラメーターを指定できます。以下は、GET リクエストを送信するサンプル コードです。
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);
上記のコードでは、HttpRequest.Builder の uri メソッドを通じてリクエストされた URL を指定し、GET メソッドを使用して HttpRequest オブジェクトを作成します。次に、HttpClient の sendAsync メソッドを使用してリクエストを送信し、HttpResponse.BodyHandlers.ofString() を使用して応答を処理する方法を指定しました。最後に、thenApply メソッドと thenAccept メソッドを使用して、応答コンテンツをそれぞれ処理しました。
GET リクエストに加えて、POST リクエストと PUT リクエストも送信できます。 POST リクエストを送信するサンプル コードは次のとおりです。
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);
上記のコードでは、HttpRequest.Builder のヘッダー メソッドでリクエスト ヘッダーの Content-Type を application/json として指定し、 POST メソッドを使用した HttpRequest オブジェクト。次に、HttpClient の sendAsync メソッドを使用してリクエストを送信し、HttpResponse.BodyHandlers.ofString() を使用して応答を処理する方法を指定しました。最後に、thenApply メソッドと thenAccept メソッドを使用して、応答コンテンツをそれぞれ処理しました。
HttpClient は、リクエストの送信とレスポンスの処理に加えて、プロキシの設定や HTTP 認証など、その他の便利なメソッドも提供します。詳細については、Java の公式ドキュメントを参照してください。
要約すると、Java 11 の新しい HttpClient クラスは、HTTP リクエストを送信し、応答を処理するためのより便利で効率的な方法を提供します。新しい HttpClient クラスを使用すると、非同期の GET、POST、および PUT リクエストを簡単に送信し、簡潔なコードを使用して応答を処理できます。これにより、開発者は同時リクエストをより効率的に処理し、アプリケーションのパフォーマンスを向上させることができます。
参考リンク:
以上がJava 11 の新しい HttpClient を使用して非同期 HTTP リクエストを送信し、レスポンスを処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。