本人此前写过一篇关于HttpClient设置超时时间的文章,那个时候我还是一个小白(蜜汁笑容)。而今在项目中要使用httpclient设置超时时间时发现以前写的那个方法早已过时。HttpClient4.3版本有了新的设置方法,在此做个记录,以备查阅。
不同版本的HttpClient设置方法HttpClient版本不同,设置方法也不尽相同,一般而言有一下几种设置
1、我4.3版本设置的时候报错,可能是版本问题
httpClient.setConnectionTimeout(30000);
httpClient.setTimeout(30000);
2、我4.3版本设置的时候也报错,可能是版本问题
HttpClient client = new HttpClient();
client.getHttpConnectionManager().getParams()
.setConnectionTimeout(3000);
client.getHttpConnectionManager().getParams()
.setSoTimeout(3000);
3、我4.3版本设置的时候提示已过期,这个应该是老版本用的
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000);
4、4.3版本版本设置正常
HttpPost httpPost = new HttpPost(url);
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(30000).setConnectTimeout(20000).build();
httpPost.setConfig(requestConfig);
HttpPost httpPost = new HttpPost(url);
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(30000).setConnectTimeout(20000).build();
httpPost.setConfig(requestConfig);
我这里把链接超时时间设置为20s,读取超时时间设置为30s.下面来看效果
从报错日志可以看出设置是生效了的。