使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间。这两个参数很重要,目的是为了防止访问其他http服务时,由于超时导致自己的应用受影响。

4.5版本中,这两个参数的设置都抽象到了RequestConfig中,由相应的Builder构建,具体的例子如下:

 import java.io.IOException;

 import org.apache.http.Consts;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; /**
* @author
*
* @date 2017年5月18日 上午9:17:08
*
* @Description
*/
public class HttpGetUtils { /**
* @param args
* @throws IOException
* @throws ClientProtocolException
*/
public static void main(String[] args) throws ClientProtocolException, IOException {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://stackoverflow.com/");
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000)
.setSocketTimeout(5000).build();
httpGet.setConfig(requestConfig);
CloseableHttpResponse response = httpclient.execute(httpGet);
System.out.println(response.getStatusLine());// 得到状态行
System.out.println(EntityUtils.toString(response.getEntity(), Consts.UTF_8.name()));// 得到请求回来的数据
}
}

setConnectTimeout :设置连接超时时间,单位毫秒。

setConnectionRequestTimeout :设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。

setSocketTimeout :请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用。

最新文章

  1. MVC自动生成数据库【Code-FIrst方式】
  2. .net异步编程
  3. shell script练习
  4. oracle 强杀进程
  5. java Map实现的cache manager
  6. 05_Smart-image通过SoftReference提高性能
  7. MegaCLI SAS RAID Management Tool
  8. Git Command Summary (Updated)
  9. 希尔排序----java实现
  10. C语言程序设计第四次作业——选择结构(2)
  11. 并发编程之volatile
  12. Idea 使用小技巧【取消自动打开项目】
  13. php基础--来自网页转载
  14. 2016 版 Laravel 系列入门教程
  15. appium的inspectot使用
  16. 基于jCOM搭建Java-微软信息桥梁(下)
  17. selenium元素定位方法
  18. Codeforces Beta Round #7 C. Line Exgcd
  19. git把任意代码提交到已存在的github库中
  20. 5501环路运输【(环结构)线性DP】【队列优化】

热门文章

  1. Redis-Map
  2. Angular中父子组件双向绑定传值
  3. javascript函数中with的介绍
  4. BZOJ3193: [JLOI2013]地形生成
  5. 古老的CSS同高列问题
  6. Azure Linux 虚拟机常见导致无法远程的操作
  7. ajax实现跨域提交
  8. iOS设计模式 - 装饰
  9. 使用CALayer制作View的辉光效果
  10. Linux 下Shell的学习2