初始設置如下:
//超時設置
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(400).setSocketTimeout(400).build();
request.setEntity(s);
request.setConfig(requestConfig);
HttpClient client = new HttpClient();
HttpResponse httpResponse = client.execute(request);
發現設置並未生效,後發現是由於沒有設置重試選項,將代碼修改如下:
private HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException exception,
int executionCount, HttpContext context) {
return false;
}};
//超時設置
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(connectTImeoutInMills).setSocketTimeout(socketTImeoutInMills).build();
request.setEntity(s);
request.setConfig(requestConfig);
HttpClient client = HttpClients.custom().setRetryHandler(myRetryHandler).build();
HttpResponse httpResponse = client.execute(request);
超時設置即生效。