说明
1、HttpClient异步请求返回CompletableFuture,其自带的exceptionally方法可用于fallback处理。
2、HttpClient不像WebClient那样,它不会出现4xx或5xx的状态码异常,需要根据自己的情况进行处理,手动检测状态码异常或返回其他内容。
实例
@Test publicvoidtestHandleException()throwsExecutionException,InterruptedException{ HttpClientclient=HttpClient.newBuilder() .connectTimeout(Duration.ofMillis(5000)) .build(); HttpRequestrequest=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的错误处理,希望对大家有所帮助。更多Java学习指路:Java基础
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容