Rumah  >  Artikel  >  Java  >  Analisis contoh pengendalian ralat HttpClient di Java

Analisis contoh pengendalian ralat HttpClient di Java

王林
王林ke hadapan
2023-05-08 11:07:071023semak imbas

Penjelasan

1. Permintaan tak segerak HttpClient mengembalikan CompletableFuture, dan kaedahnya yang luar biasa boleh digunakan untuk pemprosesan sandaran.

2. Tidak seperti WebClient, HttpClient tidak akan mempunyai pengecualian kod status 4xx atau 5xx Anda perlu mengendalikannya mengikut situasi anda sendiri, mengesan pengecualian kod status secara manual atau mengembalikan kandungan lain.

Instance

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

Atas ialah kandungan terperinci Analisis contoh pengendalian ralat HttpClient di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam