Heim  >  Artikel  >  Java  >  Analyse von Fehlerbehandlungsbeispielen von HttpClient in Java

Analyse von Fehlerbehandlungsbeispielen von HttpClient in Java

王林
王林nach vorne
2023-05-08 11:07:07981Durchsuche

Erklärung

1. Die asynchrone HttpClient-Anfrage gibt CompletableFuture zurück, und eine eigene Ausnahmemethode kann für die Fallback-Verarbeitung verwendet werden.

2. Im Gegensatz zu WebClient gibt es bei HttpClient keine 4xx- oder 5xx-Statuscode-Ausnahmen. Sie müssen es entsprechend Ihrer eigenen Situation behandeln, Statuscode-Ausnahmen manuell erkennen oder andere Inhalte zurückgeben.

Instanzen

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

Das obige ist der detaillierte Inhalt vonAnalyse von Fehlerbehandlungsbeispielen von HttpClient in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen