java中HttpClient的错误处理

说明

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基础

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容