设置DefaultHttpClient和HttpClient的超时时间的方法 - Go语言中文社区

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


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)

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/sdujava2011/article/details/38921019
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 20:58:20
  • 阅读 ( 971 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢