使用Apache的HttpClient时是否需要指定超时?

时间:2012-08-13 11:10:59

标签: java android httpclient apache-httpclient-4.x apache-commons-httpclient

默认值为无限值。

但由于我在Android中使用Apache Client [1],因为移动网络始终不可靠,所以我需要设置http.socket.timeouthttp.connection.timeout吗?

如果是,我应该设定什么价值?移动网络(例如3G)的一分钟是否合适?

[1] http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html

1 个答案:

答案 0 :(得分:3)

如果您无法使用AndroidHttpClient,则可以始终设置相同的超时值,即:

// Default connection and socket timeout of 60 seconds.  Tweak to taste.
private static final int SOCKET_OPERATION_TIMEOUT = 60 * 1000;

此常量用于大量超时,

HttpConnectionParams.setConnectionTimeout(params, SOCKET_OPERATION_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, SOCKET_OPERATION_TIMEOUT);

并在调用SSLCertificateSocketFactory.getHttpSocketFactory(..)

时使用