httpclient超时请求

转载 2015年07月10日 14:54:41

最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用),然后就用了HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样,

3.X是这样的

?
1
HttpClient httpClient=new DefaultHttpClient();
4.3是这样的
?
1
CloseableHttpClient httpClient = HttpClients.createDefault();
当然,上面这些变化只不过是一些小变化,大家看看API大家就都会了。

我要讲的是超时设置,HttpClient有三种超时设置,最近比较忙,没时间具体归纳总结,以后再补上,我这里就讲一些最简单最易用的超时设置方法。

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

?
1
2
3
HttpClient client = new HttpClient();
client.setConnectionTimeout(30000); 
client.setTimeout(30000);
?
1
2
HttpClient httpClient= new HttpClient(); 
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
4.X版本的超时设置(4.3后已过时)
?
1
2
3
HttpClient httpClient=new DefaultHttpClient();
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,2000);//连接时间
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000);//数据传输时间
4.3版本超时设置
?
1
2
3
4
5
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);//执行请求

相关文章推荐

设置DefaultHttpClient和HttpClient的超时时间的方法

DefaultHttpClient超时设置: 其实是在HttpConnectionParams里设置的。我自己写了一个继承DefaultHttpClient的类,以后使用用这个就行了: ...

HttpClient请求之基础

  • 2016年07月12日 17:43
  • 3.94MB
  • 下载

HttpClient请求

  • 2013年12月17日 20:56
  • 494B
  • 下载

HttpClient 4.5.2版本设置连接超时时间-CloseableHttpClient设置Timeout

HttpClient  4.5版本设置连接超时时间-CloseableHttpClient设置Timeout(区别于4.3.2)   HttpClient升级到4.5版本后,API有很多变化,Ht...

HttpClient方式网络请求的jar包

  • 2016年04月03日 19:35
  • 519KB
  • 下载

HttpClient超时故障

网站这边多次因为HttpClient超时问题导致Tomcat停止服务,影响非常不好,而且问题重复出现,查看网络,没有比较明确介绍httpclient所有超时相关的设置(大部分只提到连接超时(conne...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:httpclient超时请求
举报原因:
原因补充:

(最多只允许输入30个字)