设置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...

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

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

HttpClient 4.3超时设置

HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样, 3.X是这样的...

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

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

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

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

android DefaultHttpClient 超时

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

JBoss配置解决高并发连接异常问题

这两天一个项目在做压力测试的时候,发现只要并发数超过250个,连续测试两轮就会有连接异常出现,测试轮数越多出现越频繁,异常日志如下: Caused by: com.caucho.hessian.cl...

HttpClient超时机制(安全问题处理:访问超大文件控制)

本文转载自:https://yq.aliyun.com/articles/14703 摘要: 背景      最近一直在做项目,其中的一个功能点,主要是访问外部网站并获取页面的字符串,具体的...

Java中httpClient中的设置超时时间

HttpClient mHttpClient = new DefaultHttpClient(); /*** *********************设置超时***************...

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

现在的对外接口一般都是Http + json的,因为简单,语言无关。 Apache HttpClient应该是最常用的Java http组件了。这货有个坑爹的地方,Apache HttpClient如...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设置DefaultHttpClient和HttpClient的超时时间的方法
举报原因:
原因补充:

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