原文:http://www.cnblogs.com/codingmyworld/archive/2011/08/17/2141706.html
/* 从连接池中取连接的超时时间 */
ConnManagerParams.setTimeout(params, 1000);
/* 连接超时 */
HttpConnectionParams.setConnectionTimeout(params, 2000);
/* 请求超时 */
HttpConnectionParams.setSoTimeout(params, 4000);
第一行设置ConnectionPoolTimeout:这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。
第二行设置ConnectionTimeout: 这定义了通过网络与服务器建立连接的超时时间。Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为2秒。
第三行设置SocketTimeout: 这定义了Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间,此处设置为4秒。
示例1package 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 ) { } }
结束!
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed