Rumah > Java > javaTutorial > teks badan

Analisis contoh pengendalian ralat HttpClient di Java

王林
Lepaskan: 2023-05-08 11:07:07
ke hadapan
1039 orang telah melayarinya

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());
    }
Salin selepas log masuk

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

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan