java线程httpclient_httpClient多线程请求

使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以在http://hc.apache.org/downloads.cgi下载

1、并发请求

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView Code

1 package generate.httpclient;

2

3 import java.util.List;

4 import java.util.concurrent.ExecutorService;

5 import java.util.concurrent.Executors;

6

7 import org.apache.http.HttpEntity;

8 import org.apache.http.HttpResponse;

9 import org.apache.http.client.HttpClient;

10 import org.apache.http.client.methods.HttpGet;

11 import org.apache.http.conn.ClientConnectionManager;

12 import org.apache.http.conn.params.ConnManagerParams;

13 import org.apache.http.conn.scheme.PlainSocketFactory;

14 import org.apache.http.conn.scheme.Scheme;

15 import org.apache.http.conn.scheme.SchemeRegistry;

16 import org.apache.http.impl.client.DefaultHttpClient;

17 import org.apache.http.impl.conn.PoolingClientConnectionManager;

18 import org.apache.http.params.BasicHttpParams;

19 import org.apache.http.params.HttpConnectionParams;

20 import org.apache.http.params.HttpParams;

21 import org.apache.http.protocol.BasicHttpContext;

22 import org.apache.http.protocol.HttpContext;

23 import org.apache.http.util.EntityUtils;

24

25 public class ThreadPoolHttpClient {

26     //线程池27     private ExecutorService exe = null;

28     //线程池的容量29     private static final int POOL_SIZE = 20;

30     private HttpClient client = null;

31     String[] urls=null;

32     public ThreadPoolHttpClient(String[] urls){

33         this.urls=urls;

34     }

35     public void test() throws Exception {

36         exe = Executors.newFixedThreadPool(POOL_SIZE);

37         HttpParams params =new BasicHttpParams();

38         /*从连接池中取连接的超时时间*/

39         ConnManagerParams.setTimeout(params, 1000);

40         /*连接超时*/

41         HttpConnectionParams.setConnectionTimeout(params, 2000);

42         /*请求超时*/

43         HttpConnectionParams.setSoTimeout(params, 4000);

44         SchemeRegistry schemeRegistry = new SchemeRegistry();

45         schemeRegistry.register(

46                 new Scheme("http", 80

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值