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

转自:https://blog.csdn.net/sdujava2011/article/details/38921019

DefaultHttpClient超时设置:

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

 
 
  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 plain copy 在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)
 


posted @ 2024-01-04 08:46  sensen~||^_^|||&  阅读(232)  评论(0编辑  收藏  举报