【发布时间】:2015-01-02 23:23:41
【问题描述】:
我正在尝试将我们的 HttpClient 依赖项从 4.0.1 升级到 4.3.5。并且对在新库中设置连接超时感到困惑。对于以下代码:
HttpClient httpClient = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 300);
将替换为以下代码:
RequestConfig config = RequestConfig.custom().setConnectTimeout(300).build();
HttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
但是,我不确定是否应该使用 setConnectTimeout 或 setConnectionRequestTimeout,因为我不熟悉 HttpClient。在我看来,我应该根据源代码中的 java doc 使用 setConnectionTimeout 。有人可以确认吗?提前致谢。
/**
* Returns the timeout in milliseconds used when requesting a connection
* from the connection manager. A timeout value of zero is interpreted
* as an infinite timeout.
* <p/>
* A timeout value of zero is interpreted as an infinite timeout.
* A negative value is interpreted as undefined (system default).
* <p/>
* Default: <code>-1</code>
*/
public int getConnectionRequestTimeout() {
return connectionRequestTimeout;
}
/**
* Determines the timeout in milliseconds until a connection is established.
* A timeout value of zero is interpreted as an infinite timeout.
* <p/>
* A timeout value of zero is interpreted as an infinite timeout.
* A negative value is interpreted as undefined (system default).
* <p/>
* Default: <code>-1</code>
*/
public int getConnectTimeout() {
return connectTimeout;
}
【问题讨论】:
-
connection TO 和 request TO 是非常不同的事情。多个请求可以使用单个 conn 设置。每个请求都有自己的超时值。连接 TO 可能仅指建立连接的操作
-
见question 这是关于 ConnectionRequestTimeout 设置