gpt4 book ai didi

Java : HttpClient 4. 1.2 : ConnectionTimeout, SocketTimeout 值设置无效

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:08 25 4
gpt4 key购买 nike

我正在使用 HttpClient 4.1.2。将 ConnectionTimeout 和 SocketTimeout 设置为一个值永远不会生效。

代码:

  Long startTime = null;
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 30);
HttpConnectionParams.setSoTimeout(params, 60);
HttpGet httpget = new HttpGet("http://localhost:8080/Test/ScteServer");
try {
startTime = System.currentTimeMillis();
HttpResponse response = httpClient.execute(httpget);
}
catch(SocketTimeoutException se) {
Long endTime = System.currentTimeMillis();
System.out.println("SocketTimeoutException :: time elapsed :: " + (endTime-startTime));
se.printStackTrace();
}
catch(ConnectTimeoutException cte) {
Long endTime = System.currentTimeMillis();
System.out.println("ConnectTimeoutException :: time elapsed :: " + (endTime-startTime));
cte.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
Long endTime = System.currentTimeMillis();
System.out.println("IOException :: time elapsed :: " + (endTime-startTime) );
e.printStackTrace();
}

如果服务器关闭,则连接超时永远不会超过 400 毫秒,而它必须按照配置在 ~ 30 毫秒处超时。

套接字超时也是如此,在 doGet() 中 hibernate 5000 毫秒将引发套接字超时,该超时永远不会达到配置的 60 毫秒左右。需要 500 多毫秒。

谁能建议如何配置 HttpClient 4.1.2 以便它在配置的时间左右超时?

最佳答案

HttpConnectionParams 需要传递给连接管理器(参见 this question )。使用 DefaultHttpClient 时,您可以像这样设置这些参数:

    httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 60000);

参见 documentation还有!

关于Java : HttpClient 4. 1.2 : ConnectionTimeout, SocketTimeout 值设置无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com