问题
I can't find any documentation on the default httpParams for httpclient 4.1 ?
What's the default socket timeout when I do a GET ?
回答1:
According to the documentation, the http.socket.timeout
parameter controls the SO_TIMEOUT value, and:
If this parameter is not set, read operations will not time out (infinite timeout).
回答2:
The accepted answer is not applicable for newer versions of HttpClient. Versions 4.3.X and above use the system default which is usually 60 secs.
Taken from HttpClient javadoc.
public int getSocketTimeout()
Defines the socket timeout (SO_TIMEOUT) in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets).
A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default: -1
回答3:
For Apache HttpClient version 4.x upwards
int timeout = 5*60; // seconds (5 minutes)
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(timeout * 1000)
.setConnectionRequestTimeout(timeout * 1000)
.setSocketTimeout(timeout * 1000).build();
HttpClient httpClient =
HttpClientBuilder.create().setDefaultRequestConfig(config).build();
回答4:
https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/config/RequestConfig.html#getSocketTimeout%28%29
A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default: -1
来源:https://stackoverflow.com/questions/9734384/default-timeout-for-httpcomponent-client