关于HttpClient中超时设置
2016-07-18 17:43
441 查看
最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用),然后就用了HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样,
3.X是这样的
4.3是这样的
当然,上面这些变化只不过是一些小变化,大家看看API大家就都会了。
我要讲的是超时设置,HttpClient有三种超时设置,最近比较忙,没时间具体归纳总结,以后再补上,我这里就讲一些最简单最易用的超时设置方法。
这是个3.X的超时设置方法
4.X版本的超时设置(4.3后已过时)
4.3版本超时设置
BTW,4.3版本不设置超时的话,一旦服务器没有响应,等待时间N久(>24小时)。
(会造成线程阻塞)
原文地址:http://my.oschina.net/u/577453/blog/173724
3.X是这样的
HttpClient httpClient=new DefaultHttpClient();
4.3是这样的
CloseableHttpClient httpClient = HttpClients.createDefault();
当然,上面这些变化只不过是一些小变化,大家看看API大家就都会了。
我要讲的是超时设置,HttpClient有三种超时设置,最近比较忙,没时间具体归纳总结,以后再补上,我这里就讲一些最简单最易用的超时设置方法。
这是个3.X的超时设置方法
HttpClient client = new HttpClient(); client.setConnectionTimeout(30000); client.setTimeout(30000);
HttpClient httpClient= new HttpClient(); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
4.X版本的超时设置(4.3后已过时)
HttpClient httpClient=new DefaultHttpClient(); httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,2000);//连接时间 httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000);//数据传输时间
4.3版本超时设置
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet=new HttpGet("http://www.baidu.com");//HTTP Get请求(POST雷同) RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();//设置请求和传输超时时间 httpGet.setConfig(requestConfig); httpClient.execute(httpGet);//执行请求
BTW,4.3版本不设置超时的话,一旦服务器没有响应,等待时间N久(>24小时)。
(会造成线程阻塞)
原文地址:http://my.oschina.net/u/577453/blog/173724
相关文章推荐
- 网络知识之六 httpclient详解
- http,https请求的处理
- https与http
- 深度学习之神经网络结构——RNN_理解LSTM
- 网络性能测试工具iperf详细使用图文教程【转载】
- AFN之HTTPS
- 关于TCP协议,我想你应该懂了!
- UIWebView 使用中遇到的问题(NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802))
- Apache Http Client 在Android SDK 23中被移除
- 一台centos7主机部署LAMP,提供https服务
- 《Linux学习》之网络环境的配置
- 关于Javascript 中的 FileReader, XMLHttpRequest, Blob, ArrayBuffer, DataURL 等
- linux网络不同的解决办法
- POJ 3469 Dual Core CPU(最大流最小割定理,Dinic)
- 【iOS开发】Git错误fatal: unable to access 'https://github.com/Hanrovey/Demo_RuntimeExchangeMethod.git/
- httpUtil
- linux网络编程之-----多播(组播)编程
- httpclient 访问https应用
- web服务httpd-2.2基于域名虚拟主机
- 计算机网络 (学习笔记)