码迷,mamicode.com
首页 > Web开发 > 详细

HttpClient超时设置

时间:2016-10-30 13:31:23      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:stc   creat   异步   tom   span   .net   nbsp   conf   comm   

场景:最近并发较高,看到响应时间6s的时候,心里咯噔一下,我记得我设置的超时时间是5s啊。

 

原来读取超时时间没生效,只生效了连接超时时间。

ConnectionTimeout:这定义了通过网络与服务器建立连接的超时时间。Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为3秒。

将url改为一个不存在的url,则会抛出org.apache.commons.httpclient.ConnectTimeoutException

SocketTimeout:这定义了Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间,此处设置为5秒。

请求的地址sleep5s后返回数据,则抛出:java.net.SocketTimeoutException: Read timed out

 

 

这是个3.X的超时设置方法

HttpClient client = new HttpClient();

client.setConnectionTimeout(30000);

client.setTimeout(30000);

4.3版本超时设置

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpGet httpGet=new HttpGet("http://www.baidu.com");//HTTP Get请求

RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();//设置请求和传输超时时间

httpGet.setConfig(requestConfig);

httpClient.execute(httpGet);//执行请求

 

以后再写httpClient这两个超时时间一定要加上,不加就很可能悲剧的了

HttpClient超时设置

标签:stc   creat   异步   tom   span   .net   nbsp   conf   comm   

原文地址:http://www.cnblogs.com/jimmy-muyuan/p/6012736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!