Rumah > Java > javaTutorial > Gunakan Klien HTTP/2 baharu dalam Java 11 untuk menghantar permintaan HTTP dan mengendalikan respons

Gunakan Klien HTTP/2 baharu dalam Java 11 untuk menghantar permintaan HTTP dan mengendalikan respons

WBOY
Lepaskan: 2023-07-30 16:51:23
asal
1357 orang telah melayarinya

Gunakan Klien HTTP/2 baharu dalam Java 11 untuk menghantar permintaan HTTP dan mengendalikan respons

  1. Pengenalan
    Dengan keluaran Java 11, Java telah memperkenalkan API Klien HTTP/2 baharu untuk menggantikan HttpURLConnection dan HttpClient lama. API baharu menyediakan cara yang lebih mudah dan cekap untuk menghantar permintaan HTTP dan mengendalikan respons. Dalam artikel ini, kami akan meneroka API Klien HTTP/2 baharu dalam Java 11, termasuk cara menghantar permintaan GET, permintaan POST dan cara mengendalikan respons.
  2. Menghantar permintaan GET
    Menghantar permintaan GET ialah salah satu operasi HTTP yang paling biasa. Berikut ialah contoh kod untuk menghantar permintaan GET menggunakan API Klien HTTP/2 baharu dalam Java 11:
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());
    }
}
Salin selepas log masuk

Dalam kod contoh di atas, kami mula-mula mencipta objek HttpClient dan kemudian mencipta permintaan GET dan lulus hantar() kaedah menghantar permintaan dan mengembalikan objek HttpResponse. Akhir sekali, kita boleh mendapatkan kod status respons dan badan respons melalui objek HttpResponse.

  1. Hantar permintaan POST
    Menghantar permintaan POST ialah satu lagi operasi HTTP biasa. Berikut ialah contoh kod untuk menghantar permintaan POST menggunakan API Klien HTTP/2 baharu dalam Java 11:
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());
    }
}
Salin selepas log masuk

Dalam kod contoh di atas, kami mula-mula mencipta objek HttpClient dan kemudian mencipta permintaan POST dan lulus hantar() kaedah menghantar permintaan dan mengembalikan objek HttpResponse. Kami boleh menentukan kandungan badan permintaan melalui parameter kaedah POST Sebagai contoh, di sini kami menghantar rentetan JSON sebagai badan permintaan.

  1. Mengendalikan Respons
    API Klien HTTP/2 baharu dalam Java 11 menyediakan berbilang kaedah untuk mengendalikan respons. Dalam kod sampel di atas, kami menggunakan HttpResponse.BodyHandlers.ofString() untuk menukar badan tindak balas kepada rentetan. Sebagai tambahan kepada ofString(), terdapat BodyHandlers lain yang boleh memproses badan tindak balas mengikut jenis kandungan respons tertentu, seperti ofByteArray(), ofInputStream(), dsb.

Selain memproses badan respons, kami juga boleh mendapatkan maklumat respons lain, seperti pengepala respons, kod status respons, dsb. Berikut ialah beberapa contoh kod untuk memproses respons:

// 获取响应头
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");
}
Salin selepas log masuk

Kod di atas menunjukkan cara mendapatkan pengepala respons, kod status respons dan menentukan sama ada permintaan itu berjaya berdasarkan kod status.

  1. Ringkasan
    Melalui artikel ini, kami mempelajari cara menggunakan API Klien HTTP/2 baharu dalam Java 11 untuk menghantar permintaan HTTP dan mengendalikan respons. API baharu menyediakan cara yang lebih mudah dan cekap untuk melaksanakan operasi HTTP. Saya harap artikel ini akan membantu anda memahami dan menggunakan API Klien HTTP/2 baharu.

Atas ialah kandungan terperinci Gunakan Klien HTTP/2 baharu dalam Java 11 untuk menghantar permintaan HTTP dan mengendalikan respons. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan