gpt4 book ai didi

java - 如果我不使用自定义连接管理器,是否仍应在 Apache HttpClient 上设置 ConnectionRequestTimeout?

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

我正在使用 Apache RequestConfig在我的 HttpClient 上配置一些超时。

RequestConfig config = RequestConfig.custom()
.setConnectTimeout(timeout)
.setSocketTimeout(timeout)
.setConnectionRequestTimeout(timeout) // Can I leave this out..
.build();

CloseableHttpClient httpClient = HttpClients.custom()
//.setConnectionManager(connectionManager) // ..if I don't use this
.setDefaultRequestConfig(config)
.build();

即使我没有设置自定义连接管理器/连接池,调用 setConnectionRequestTimeout(timeout) 是否有意义?

据我了解,setConnectionRequestTimeout(timeout) 用于设置等待来自连接管理器/池的连接的时间。

请注意,我没有在 httpClient 上设置连接管理器(请参阅注释行)。

最佳答案

connectionRequestTimeout 发生在您有一个连接池并且它们都忙,不允许连接管理器为您提供连接以发出请求时。

所以,你的问题的答案是:

Does it make any sense to call setConnectionRequestTimeout(timeout) even I don't have a custom Connection Manager / Pool set up?

是的。

这是因为 default implementation有一个内部连接池。所以,是的,指定连接请求超时是有意义的。实际上,这是一种很好、安全的做法。

关于java - 如果我不使用自定义连接管理器,是否仍应在 Apache HttpClient 上设置 ConnectionRequestTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37857327/

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