@holly_wang_王小飞 我觉得应该把 retryTime>5判断放到前面去
HttpClient之自定义HttpRequestRetryHandler(自定义 重试次数以及重试的时候业务处理)构造httpclient的时候可以setRetryHandler(HttpRequestRetryHandler) ** HttpRequestRetryHandler是Ht...
@holly_wang_王小飞 我觉得应该把 retryTime>5判断放到前面去
HttpClient之自定义HttpRequestRetryHandler(自定义 重试次数以及重试的时候业务处理)构造httpclient的时候可以setRetryHandler(HttpRequestRetryHandler) ** HttpRequestRetryHandler是Ht...
@Override
public boolean retryRequest(IOException arg0, int retryTimes, HttpContext arg2) {
if (arg0 instanceof UnknownHostException || arg0 instanceof ConnectTimeoutException
|| !(arg0 instanceof SSLException) || arg0 instanceof NoHttpResponseException) {
return true;
}
if (retryTimes > 5) {
return false;
}
HttpClientContext clientContext = HttpClientContext.adapt(arg2);
HttpRequest request = clientContext.getRequest();
boolean idempotent = !(request instanceof HttpEntityEnclosingRequest);
if (idempotent) {
// 如果请求被认为是幂等的,那么就重试。即重复执行不影响程序其他效果的
return true;
}
return false;
}
这会不会死循环啊,要是一直抛UnknownHostException异常,就死循环了,一直重试下去。
HttpClient之自定义HttpRequestRetryHandler(自定义 重试次数以及重试的时候业务处理)构造httpclient的时候可以setRetryHandler(HttpRequestRetryHandler) ** HttpRequestRetryHandler是Ht...