将http超时设置为jakarta HttpClient



我在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);

但是我得到了相同的结果!
如下:

SO_TIMEOUT只会在HTTP处于非活动状态时触发连接

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

谢谢

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

也可以设置http.connection。Timeout 限制等待连接建立的时间。

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

相关内容

  • 没有找到相关文章