设置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超时设置

DefaultHttpClient:请求超时httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 6...
  • iris0123456
  • iris0123456
  • 2011年06月10日 10:27
  • 60199

HttpClient 4.3超时设置

HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样, 3.X是这样的...
  • waterCabin
  • waterCabin
  • 2015年12月14日 14:50
  • 3659

httpClient中的三种超时设置

在Apache的HttpClient包中,有三个设置超时的地方: (1)/* 从连接池中取连接的超时时间*/  ConnManagerParams.setTimeout(params, 100...
  • zh521zh
  • zh521zh
  • 2016年07月22日 13:50
  • 4613

httpClient请求超时的设置以及处理

设置超时的起因 在我们的httpClient请求,当我们的请求地址错误或者请求无法在正常时间内连接并且得到反馈抑或是我们的服务器正处在关闭维修的状态 ,这时,我们发送httpClient请求的客户...
  • u011001723
  • u011001723
  • 2014年10月20日 13:36
  • 9301

Java中httpClient中的设置超时时间

HttpClient mHttpClient = new DefaultHttpClient(); /*** *********************设置超时***************...
  • zl18603543572
  • zl18603543572
  • 2015年11月18日 11:47
  • 4214

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

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

HttpClient 4.3超时设置

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

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

HttpClient升级到4.5版本后,API有很多变化,HttpClient 4之后,API一直没有太稳定,我感觉4.5版本抽象后,很多API应该快稳定了。        使用HttpClie...
  • ntc10095
  • ntc10095
  • 2016年02月26日 15:37
  • 574

android DefaultHttpClient 超时

昨天看了一篇HttpClient的设置超时时间,本来以为今天到公司就能把问题给解决了。结果发现DefaultHttpClient没有设置超时时间。然后继续寻找,终于发现了DefaultHttpClie...
  • howlaa
  • howlaa
  • 2013年12月20日 11:06
  • 4175

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

使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间。这两个参数很重要,目的是为了防止访问其他http时,由于超时导致自己的应用受影响。        4.5版本中,这两个参数的设置...
  • tjcyjd
  • tjcyjd
  • 2016年12月25日 21:07
  • 2145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设置DefaultHttpClient和HttpClient的超时时间的方法
举报原因:
原因补充:

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