Maison >Java >javaDidacticiel >Utilisez le nouveau client HTTP/2 dans Java 11 pour envoyer des requêtes HTTP et gérer les réponses

Utilisez le nouveau client HTTP/2 dans Java 11 pour envoyer des requêtes HTTP et gérer les réponses

WBOY
WBOYoriginal
2023-07-30 16:51:231378parcourir

Utilisez le nouveau client HTTP/2 dans Java 11 pour envoyer des requêtes HTTP et gérer les réponses

  1. Introduction
    Avec la sortie de Java 11, Java a introduit une nouvelle API client HTTP/2 pour remplacer les anciens HttpURLConnection et HttpClient. La nouvelle API offre un moyen plus simple et plus efficace d'envoyer des requêtes HTTP et de gérer les réponses. Dans cet article, nous explorerons la nouvelle API client HTTP/2 dans Java 11, notamment comment envoyer des requêtes GET, des requêtes POST et comment gérer les réponses.
  2. Envoi d'une requête GET
    L'envoi d'une requête GET est l'une des opérations HTTP les plus courantes. Voici un exemple de code pour envoyer une requête GET à l'aide de la nouvelle API client HTTP/2 dans 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());
    }
}

Dans l'exemple de code ci-dessus, nous créons d'abord un objet HttpClient, puis créons une requête GET et passons le send() La méthode envoie une requête et renvoie un objet HttpResponse. Enfin, nous pouvons obtenir le code d'état et le corps de la réponse via l'objet HttpResponse.

  1. Envoyer une requête POST
    L'envoi d'une requête POST est une autre opération HTTP courante. Voici un exemple de code pour envoyer une requête POST à ​​l'aide de la nouvelle API client HTTP/2 dans 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());
    }
}

Dans l'exemple de code ci-dessus, nous créons d'abord un objet HttpClient, puis créons une requête POST et passons le send() La méthode envoie une requête et renvoie un objet HttpResponse. Nous pouvons spécifier le contenu du corps de la requête via les paramètres de la méthode POST. Par exemple, nous envoyons ici une chaîne JSON comme corps de la requête.

  1. Gestion des réponses
    La nouvelle API client HTTP/2 dans Java 11 fournit plusieurs méthodes pour gérer les réponses. Dans l'exemple de code ci-dessus, nous avons utilisé HttpResponse.BodyHandlers.ofString() pour convertir le corps de la réponse en chaîne. En plus de ofString(), il existe d'autres BodyHandlers qui peuvent traiter le corps de la réponse en fonction du type de contenu de réponse spécifique, tels que ofByteArray(), ofInputStream(), etc.

En plus de traiter le corps de la réponse, nous pouvons également obtenir d'autres informations de réponse, telles que les en-têtes de réponse, les codes d'état de réponse, etc. Voici quelques exemples de codes pour traiter les réponses :

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

Le code ci-dessus montre comment obtenir les en-têtes de réponse, le code d'état de la réponse et déterminer si la demande a réussi en fonction du code d'état.

  1. Résumé
    Grâce à cet article, nous avons appris à utiliser la nouvelle API client HTTP/2 dans Java 11 pour envoyer des requêtes HTTP et gérer les réponses. La nouvelle API offre un moyen plus simple et plus efficace d'effectuer des opérations HTTP. J'espère que cet article vous aidera à comprendre et à utiliser la nouvelle API client HTTP/2.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn