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

转载 2014年08月29日 10:36:47

DefaultHttpClient超时设置:

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

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  * 封装超时的HTTPclient 
  3.  * @author wangfeng 
  4.  * @date date 2013-12-20 09:30:26 
  5.  */  
  6. public class MyHttpClient extends DefaultHttpClient{  
  7.     /** 
  8.      * 获取 HttpClient,主要是封装了超时设置 
  9.      * @param rTimeOut 请求超时 
  10.      * @param sTimeOut 等待数据超时 
  11.      * @return 
  12.      */  
  13.     public DefaultHttpClient getHttpClient(int rTimeOut,int sTimeOut){  
  14.         BasicHttpParams httpParams = new BasicHttpParams();  
  15.         HttpConnectionParams.setConnectionTimeout(httpParams, rTimeOut);  
  16.         HttpConnectionParams.setSoTimeout(httpParams, sTimeOut);  
  17.         DefaultHttpClient client = new DefaultHttpClient(httpParams);  
  18.         return client;  
  19.     }  
  20. }  

如何使用:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. HttpPost httpRequest =new HttpPost(validateUrl);  
  2.         //Post运作传送变数必须用NameValuePair[]阵列储存  
  3.   
  4.         //传参数 服务端获取的方法为request.getParameter("name")  
  5.   
  6.         List params=new ArrayList();  
  7.         params.add(new BasicNameValuePair("username",userName));  
  8.         params.add(new BasicNameValuePair("password",password));      
  9.         try{  
  10.             //发出HTTP request  
  11.             httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));  
  12.             //取得HTTP response  
  13.             HttpResponse httpResponse = null;  
  14.             try{  
  15.                 httpResponse=new MyHttpClient().getHttpClient(7000,7000).execute(httpRequest);  
  16.             }catch(Exception e){  
  17.                 isNetError = true;  
  18.                 System.out.println("netError");  
  19.             }  

2.
请求超时
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 60000); 
读取超时
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 60000);

DefaultHttpClient超时设置:
HttpClient httpClient=new HttpClient(); 
链接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60000);  
读取超时
httpClient.getHttpConnectionManager().getParams().setSoTimeout(60000)

HttpClient 4.3超时设置

最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用),然后就用了HttpClient 4.3。HttpClient这货和Lucene一样,每个版本...
  • zheng0518
  • zheng0518
  • 2015-06-12 10:58:46
  • 7752

HttpClient超时设置

DefaultHttpClient:请求超时httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 6...
  • iris0123456
  • iris0123456
  • 2011-06-10 10:27:00
  • 60618

使用DefaultHttpClient发起网络请求遇到的问题

前一段时间公司项目在利用Apache HttpClient做网络请求的时候,经常拿不到返回结果,试了很多方法都没有结果。尤其是当kt40扫描程序和流水线控制程序同时运作的时候,程序经常收不到后台返回的...
  • jdfkldjlkjdl
  • jdfkldjlkjdl
  • 2016-02-26 14:36:58
  • 1826

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

HttpClient  4.5版本设置连接超时时间-CloseableHttpClient设置Timeout(区别于4.3.2)   HttpClient升级到4.5版本后,API有很多变化,Ht...
  • iamlihongwei
  • iamlihongwei
  • 2017-04-24 15:07:13
  • 1014

HttpClient设置超时

HttpConnectionManagerParams managerParams = httpClient .getHttpConnectionManager().getParams();  ...
  • hi_kevin
  • hi_kevin
  • 2014-06-19 11:16:55
  • 25786

Java中httpClient中的设置超时时间

HttpClient mHttpClient = new DefaultHttpClient(); /*** *********************设置超时***************...
  • zl18603543572
  • zl18603543572
  • 2015-11-18 11:47:44
  • 4484

HttpClient 4.5版本设置连接超时时间

使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间。这两个参数很重要,目的是为了防止访问其他http时,由于超时导致自己的应用受影响。        4.5版本中,这两个参数的设置...
  • tjcyjd
  • tjcyjd
  • 2016-12-25 21:07:01
  • 2355

HttpClient超时设置详解

HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样, 3.X是这样的...
  • u011191463
  • u011191463
  • 2017-11-29 14:22:02
  • 6333

Apache HttpClient 没有设置time out导致应用长时间阻塞的问题

现在的对外接口一般都是Http + json的,因为简单,语言无关。 Apache HttpClient应该是最常用的Java http组件了。这货有个坑爹的地方,Apache HttpClient如...
  • hengyunabc
  • hengyunabc
  • 2014-04-21 19:46:12
  • 18523

HttpClient请求DefaultHttpClient过时替换

HttpClient请求DefaultHttpClient过时替换
  • u010849331
  • u010849331
  • 2016-06-24 17:53:16
  • 20168
收藏助手
不良信息举报
您举报文章:设置DefaultHttpClient和HttpClient的超时时间的方法
举报原因:
原因补充:

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