HttpComponent 完全解析之获取HttpClient

  在Java Web中,我们一般使用HttpComponent发起网络请求。HttpComponent获取分为两步:

   1、获取到HttpClient

   2、发起请求

  今天来看一下如何配置HttpClient来达到我们想要的效果

一、连接池与设置HttpClient连接池数

    HTTPComponent中有连接池的概念,比如我们有一个连接 连接了www.baidu.com ,那么当这个连接使用完毕后,下一个线程想要请求 www.baidu.com ,就可以直接使用这个连接,这是连接池的概念,那么我们如何去设置连接池的大小呢?
  HTTPComponent中有两个连接管理器,一个是 BasicHttpClientConnectionManager ,一个是PoolingHttpClientConnectionManager。 BasicHttpClientConnectionManager  同一时间只能有一个连接,所以我们基本上不用,而PoolingHttpClientConnectionManager则为几乎所有人使用的连接管理器,也就是我们所说的连接池。
  设置poolSize:

          PoolingHttpClientConnectionManager poolingHttpClientConnectionManager = new PoolingHttpClientConnectionManager();
        // MaxPerRoute 设置一路有多大的缓存,比如访问 www.baidu.com 的为一路,那么访问 www.baidu.com 的连接最大限制到多少,比如是100,那么最多限制100个连接  www.baidu.com 的
        poolingHttpClientConnectionManager.setDefaultMaxPerRoute(100);
        // 最多对外多少个连接,比如为 200 ,则为最大对外200个连接
        poolingHttpClientConnectionManager.setMaxTotal(200); 


  注意连接不像连接数据库那样永远只有一种连接,HttpComponent中不同的域名是不同路的连接,连接成功后不能共用,所以 setDefaultMaxPerRoute 是设置相同路的最大连接数,setMaxTotal是设置最大的所有连接数。

 

二、如何设置默认的 connectionRequestTimeOut、connectionTi

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值