【发布时间】:2015-07-24 13:30:41
【问题描述】:
我有这个代码:
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(40 * 1000)
.setConnectionRequestTimeout(40 * 1000)
.setSocketTimeout(40 * 1000)
.build();
client = HttpClientBuilder
.create()
.setDefaultRequestConfig(requestConfig)
.build();
}
和
try {
Stopwatch stopWatch = Stopwatch.createStarted();
response = client.execute(new HttpGet(routingRequestUrl));
stopWatch.stop();
} catch (Exception e) {
answer.errorMsg = e.getMessage();
answer.latency = null;
}
当我的客户端配置不包含 .setSocketTimeout(40 *
1000) - 秒表显示请求可能需要超过 1 分钟。
当我单独或一起尝试 setConnectTimeout 和 setConnectionRequestTimeout 时会发生这种情况。
为什么只有.setSocketTimeout(40 * 1000) 有效检查超时 40 秒?而另一个不是?
这些是印刷品:
Read timed out
Timeout waiting for connection from pool
第一个是由setConnectionRequestTimeout 触发的,第二个是由setSocketTimeout 触发的吗?
【问题讨论】:
标签: java http request timeout client