什么是"system default" http 超时?



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

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

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

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

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

您可以通过 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");

最新更新