原文: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秒。
示例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
)
{
}
}
结束!
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed