Maison  >  Article  >  Java  >  Analyse d'exemples de gestion des erreurs de HttpClient en Java

Analyse d'exemples de gestion des erreurs de HttpClient en Java

王林
王林avant
2023-05-08 11:07:071023parcourir

Explanation

1. La requête asynchrone HttpClient renvoie CompletableFuture, et sa propre méthode exceptionnelle peut être utilisée pour le traitement de secours.

2. Contrairement à WebClient, HttpClient n'a pas d'exceptions de code d'état 4xx ou 5xx. Vous devez le gérer en fonction de votre propre situation, détecter manuellement les exceptions de code d'état ou renvoyer d'autres contenus.

Exemple

    @Test
    public void testHandleException() throws ExecutionException, InterruptedException {
        HttpClient client = HttpClient.newBuilder()
                .connectTimeout(Duration.ofMillis(5000))
                .build();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://twitter.com"))
                .build();
 
        CompletableFuture<String> result = client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
//                .whenComplete((resp,err) -> {
//                    if(err != null){
//                        err.printStackTrace();
//                    }else{
//                        System.out.println(resp.body());
//                        System.out.println(resp.statusCode());
//                    }
//                })
                .thenApply(HttpResponse::body)
                .exceptionally(err -> {
                    err.printStackTrace();
                    return "fallback";
                });
        System.out.println(result.get());
    }

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer