ホームページ >Java >&#&チュートリアル >Java における HttpClient のエラー処理例の分析

Java における HttpClient のエラー処理例の分析

王林
王林転載
2023-05-08 11:07:071072ブラウズ

説明

1. HttpClient 非同期リクエストは CompletableFuture を返し、例外的に独自のメソッドをフォールバック処理に使用できます。

2. WebClient とは異なり、HttpClient には 4xx または 5xx ステータス コードの例外がないため、ステータス コードの例外を手動で検出するか、他のコンテンツを返すか、独自の状況に応じて処理する必要があります。

    @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());
    }

以上がJava における HttpClient のエラー処理例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。