ホームページ >Java >&#&チュートリアル >Java 11 の新しい HTTP/2 クライアントを使用して HTTP リクエストを送信し、応答を処理する

Java 11 の新しい HTTP/2 クライアントを使用して HTTP リクエストを送信し、応答を処理する

WBOY
WBOYオリジナル
2023-07-30 16:51:231377ブラウズ

Java 11 の新しい HTTP/2 クライアントを使用して HTTP リクエストを送信し、応答を処理する

  1. はじめに
    Java 11 のリリースにより、Java には新しい HTTP/2 クライアント API が導入されました。古い HttpURLConnection と HttpClient を置き換えます。新しい API は、HTTP リクエストを送信して応答を処理するための、よりシンプルかつ効率的な方法を提供します。この記事では、GET リクエスト、POST リクエストの送信方法、応答の処理方法など、Java 11 の新しい HTTP/2 クライアント API について説明します。
  2. GET リクエストの送信
    GET リクエストの送信は、最も一般的な HTTP 操作の 1 つです。 Java 11 の新しい HTTP/2 クライアント API を使用して GET リクエストを送信するサンプル コードを次に示します。
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        // 创建一个HTTP/2 Client
        HttpClient client = HttpClient.newHttpClient();

        // 创建一个GET请求
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/data"))
                .GET()
                .build();

        // 发送请求并处理响应
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        // 打印响应结果
        System.out.println("Response Code: " + response.statusCode());
        System.out.println("Response Body: " + response.body());
    }
}

上記のサンプル コードでは、最初に HttpClient オブジェクトを作成し、次に GET リクエストを作成します。 send() メソッドを通じて送信され、HttpResponse オブジェクトを返します。最後に、HttpResponse オブジェクトを通じて応答ステータス コードと応答本文を取得できます。

  1. POST リクエストの送信
    POST リクエストの送信も、一般的な HTTP 操作です。 Java 11 の新しい HTTP/2 クライアント API を使用して POST リクエストを送信するサンプル コードを次に示します。
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpHeaders;
import java.net.http.HttpResponse.BodyHandlers;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        // 创建一个HTTP/2 Client
        HttpClient client = HttpClient.newHttpClient();

        // 创建一个POST请求
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/data"))
                .header("Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString("{"key": "value"}"))
                .build();

        // 发送请求并处理响应
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        // 打印响应结果
        System.out.println("Response Code: " + response.statusCode());
        System.out.println("Response Body: " + response.body());
    }
}

上記のサンプル コードでは、最初に HttpClient オブジェクトを作成し、次に POST リクエストを作成します。 、send() メソッドを通じてリクエストを送信し、HttpResponse オブジェクトを返します。 POST メソッドのパラメーターを使用してリクエスト本文の内容を指定できます。たとえば、ここでは JSON 文字列をリクエスト本文として送信します。

  1. 応答の処理
    Java 11 の新しい HTTP/2 クライアント API は、応答を処理するための複数のメソッドを提供します。上記のサンプル コードでは、HttpResponse.BodyHandlers.ofString() を使用して応答本文を文字列に変換しました。 ofString() に加えて、ofByteArray()、ofInputStream() など、特定の応答コンテンツ タイプに従って応答本文を処理できる他の BodyHandler があります。

応答本文の処理に加えて、応答ヘッダーや応答ステータス コードなどの他の応答情報も取得できます。以下は、応答を処理するためのサンプル コードです。

// 获取响应头
HttpHeaders headers = response.headers();
headers.map().forEach((k, v) -> System.out.println(k + ": " + v));

// 获取响应状态码
int statusCode = response.statusCode();

// 判断响应是否成功
if (statusCode == 200) {
    System.out.println("Request succeeded");
} else {
    System.out.println("Request failed");
}

上記のコードは、応答ヘッダー、応答ステータス コードを取得し、ステータス コードに基づいてリクエストが成功したかどうかを判断する方法を示しています。

  1. 概要
    この記事では、Java 11 の新しい HTTP/2 クライアント API を使用して HTTP リクエストを送信し、応答を処理する方法を学びました。新しい API は、HTTP 操作を実行するためのより簡単かつ効率的な方法を提供します。この記事が新しい HTTP/2 クライアント API の理解と使用に役立つことを願っています。

以上がJava 11 の新しい HTTP/2 クライアントを使用して HTTP リクエストを送信し、応答を処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。