首頁  >  文章  >  Java  >  分析Java中HttpClient的錯誤處理實例

分析Java中HttpClient的錯誤處理實例

王林
王林轉載
2023-05-08 11:07:071040瀏覽

說明

1、HttpClient非同步請求傳回CompletableFuture,其自帶的exceptionally方法可用於fallback處理。

2、HttpClient不像WebClient那樣,它不會出現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中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除