gpt4 book ai didi

java - 设置 jakarta HttpClient 的 http 超时

转载 作者:行者123 更新时间:2023-12-01 15:37:55 35 4
gpt4 key购买 nike

我在 WebHarvest 配置文件中使用下面的代码来定义 WebHarvest 中 http 元素的超时(Webharvest 使用 Jakarta HttpClient)。
但是当我将其设置为 20000 时,大约需要 40-50 秒才能达到超时!
当我将其设置为 30000 时,超时永远不会达到(至少在我等待的 2 分钟内)!!
我只需要限制响应等待时间。

<var-def name="WTimeOut">20000</var-def>
<script language="javascript">
var tmot=WTimeOut.toString();
http.client.params.soTimeout = tmot;
http.client.params.connectionManagerTimeout = tmot;
http.client.httpConnectionManager.params.connectionTimeout = tmot;
</script>

我还尝试通过java代码本身或HttpClient通过以下代码来做到这一点:

HttpClient whClient = scraper.getHttpClientManager().getHttpClient();
whClient.getParams().setParameter("http.connection-manager.timeout", (long)20000);
whClient.getParams().setParameter("http.socket.timeout",(int)20000);

但我得到了相同的结果!
this :

SO_TIMEOUT will kick in only when there is an inactivity on the HTTP connection

那么我该如何设置等待回复的时间限制呢?

谢谢

最佳答案

http.socket.timeout 设置两个连续数据包之间等待的时间。因此,如果有数据传入非常慢,但仍然足够快而不会触发超时,则连接不会被切断。

您还可以设置http.connection.timeout来限制建立连接之前的等待时间。

但是,没有内置方法可以对整个请求的长度设置硬性时间限制。

关于java - 设置 jakarta HttpClient 的 http 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581696/

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