什么是"系统默认" http超时?

时间:2018-03-22 17:07:55

标签: java apache http apache-httpclient-4.x

我试图找出Apache HttpClient的超时。 doc文件*表示http连接的默认超时是"系统默认值"超时。但是什么是"系统默认"?我如何才能找出"系统默认值"的价值?超时设置为?

*"超时值为零被解释为无限超时。负值被解释为未定义(系统默认值)。

默认值:-1"(https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/config/RequestConfig.html#getConnectTimeout()

2 个答案:

答案 0 :(得分:0)

根据documentationhttp.socket.timeout参数控制SO_TIMEOUT

AND

您可以通过HttpClient的setParameter()方法设置默认超时,

HttpClient httpclient = new HttpClient();
httpclient.getParams().setParameter("http.protocol.version",HttpVersion.HTTP_1_1);
httpclient.getParams().setParameter("http.socket.timeout", new Integer(1000));
httpclient.getParams().setParameter("http.protocol.content-charset", "UTF-8");

答案 1 :(得分:0)

此特定情况下的系统默认值表示Java运行时设置的任何套接字超时值。如果套接字超时配置参数未定义,则HttpClient不会尝试控制连接套接字上的SO_TIMEOUT设置。