文章目录
- 1、项目场景:
- 2、问题描述
-
- 2.1、使用HttpClient post方法调用外部服务时,偶发性出现如下异常
- 2.2、设置重试机制,新增createHttpRequestRetryHandler方法,实现方案如下
- 2.3、出现新的问题com.sun.jersey.api.client.ClientHandlerException: org.apache.http.client.ClientProtocolException 造成原因org.apache.http.client.NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity
- 3、原因分析:
- 4、解决方案:
- 5、小提示:
1、项目场景:
项目中使用HttpClient post方法调用外部服务。
2、问题描述
2.1、使用HttpClient post方法调用外部服务时,偶发性出现如下异常
com.sun.jersey.api.client.ClientHandlerException:
org.apache.http.NoHttpResponseException: XXX.XXX.com:80 failed to respond
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
at com.sun.jersey.api.client.Client.handle(Client.java:652)
at com.sun.jersey.api.client.filter.LoggingFilter.handle(LoggingFilter.java:217)
at com.cheche365.cheche.signature.client.ClientSignatureFilter.handle(ClientSignatureFilter.java:39)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
2.2、设置重试机制,新增createHttpRequestRetryHandler方法,实现方案如下
static {
CLIENT_CONFIG = new DefaultApacheHttpClient4Config();
CLIENT_CONFIG.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
SSLContext sslContext = null

本文介绍在使用HttpClient进行POST请求时遇到的NoHttpResponseException异常及解决方案。通过设置重试机制来处理请求失败问题,并引入ApacheHttpClient4Config.PROPERTY_ENABLE_BUFFERING协议解决NonRepeatableRequestException。
最低0.47元/天 解锁文章
798

被折叠的 条评论
为什么被折叠?



