HttpClient的3种超时
来源:互联网 发布:hive sql 进制转换 编辑:程序博客网 时间:2024/05/17 06:50
原文:http://www.cnblogs.com/codingmyworld/archive/2011/08/17/2141706.html
HttpClient的3种超时说明
/* 从连接池中取连接的超时时间 */
ConnManagerParams.setTimeout(params, 1000);
/* 连接超时 */
HttpConnectionParams.setConnectionTimeout(params, 2000);
/* 请求超时 */
HttpConnectionParams.setSoTimeout(params, 4000);
第一行设置ConnectionPoolTimeout:这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。
第二行设置ConnectionTimeout: 这定义了通过网络与服务器建立连接的超时时间。Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为2秒。
第三行设置SocketTimeout: 这定义了Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间,此处设置为4秒。
示例1
package edu.cdut.robin;import org.apache.http.HttpVersion;import org.apache.http.client.HttpClient;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.params.ConnManagerParams;import org.apache.http.conn.scheme.PlainSocketFactory;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;import org.apache.http.protocol.HTTP;public class CustomerHttpClient{private static final String CHARSET = HTTP.UTF_8;private static HttpClient customerHttpClient;private CustomerHttpClient(){}public static synchronized HttpClient getHttpClient(){if (null == customerHttpClient){HttpParams params = new BasicHttpParams();/* 设置一些基本参数 */HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);HttpProtocolParams.setContentCharset(params, CHARSET);HttpProtocolParams.setUseExpectContinue(params, true);HttpProtocolParams.setUserAgent(params,"Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "+ "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1");/* 超时设置 *//* 从连接池中取连接的超时时间 */ConnManagerParams.setTimeout(params, 1000);/* 连接超时 */HttpConnectionParams.setConnectionTimeout(params, 2000);/* 请求超时 */HttpConnectionParams.setSoTimeout(params, 4000);/* 设置我们的HttpClient支持HTTP和HTTPS两种模式 */SchemeRegistry schReg = new SchemeRegistry();schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));/* 使用线程安全的连接管理来创建HttpClient */ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);customerHttpClient = new DefaultHttpClient(conMgr, params);}return customerHttpClient;}}
示例2
void doHttpGet(String userAgent, Context context, String uri){AndroidHttpClient client = null;client = AndroidHttpClient.newInstance(userAgent, context);HttpParams params = client.getParams();HttpConnectionParams.setConnectionTimeout(params, 30000);HttpConnectionParams.setSoTimeout(params, 60000);HttpClientParams.setRedirecting(params, true);HttpClientParams.setAuthenticating(params, false);HttpResponse response;HttpGet request = new HttpGet(uri);try{response = client.execute(request);} catch (IllegalArgumentException ex){} catch (IOException ex){}}
- HttpClient---HttpClient的3种超时说明
- HttpClient的3种超时
- HttpClient的3种超时
- HttpClient的3种超时
- HttpClient的3种超时
- HttpClient的三种超时
- HttpClient的三种超时
- android中 httpClient的3种超时时间
- Android开发实现HttpClient工具类以及HttpClient的3种超时说明
- Android开发实现HttpClient工具类以及HttpClient的3种超时说明
- Android开发实现HttpClient工具类以及HttpClient的3种超时说明
- Android开发实现HttpClient工具类以及HttpClient的3种超时说明
- httpclient 3中超时
- HttpClient的请求超时和响应超时
- HttpClient的超时用法小记
- HttpClient的超时用法小记
- HttpClient的超时用法小记
- HttpClient的超时用法小记
- poj 3264 Balanced Lineup 线段树+RMQ_ST算法 一题多解
- Java匿名内部类的说明——“他爸是李刚”
- 关于VMWARE虚拟机安装GHOST版XP后不能硬盘启动问题
- MFC 设置启动画面
- oracle检查点checkpoint信息
- HttpClient的3种超时
- HDU1077---Catching Fish HDU(85)
- PythonChallenge 挑战之路 Level-18
- MDK4.71A等新版中调试STM32F103等问题解决方法
- [LeetCode] Length of Last Word
- Delphi7 编程环境 技巧记录
- 淘宝详情页推广告定投功能 优化关联推荐
- jQuery动画效果笔记
- java.lang.RuntimeException: Canvas: trying to use a recycled bitmap