首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将http超时设置为雅加达HttpClient

将http超时设置为雅加达HttpClient
EN

Stack Overflow用户
提问于 2011-12-20 20:42:38
回答 1查看 1.2K关注 0票数 1

我在WebHarvest配置文件中使用下面的代码为WebHarvest中的http元素定义超时(Web收割机使用了雅加达HttpClient)。

但是,当我将它设置为20000时,需要大约40-50秒才能到达超时!

当我把它设置为30000,超时永远不会到达(至少在我等待的2分钟内)!

我只需要限制响应等待时间。

代码语言:javascript
复制
<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代码本身(O HttpClient )通过以下代码来完成它:

代码语言:javascript
复制
HttpClient whClient = scraper.getHttpClientManager().getHttpClient();
whClient.getParams().setParameter("http.connection-manager.timeout", (long)20000);
whClient.getParams().setParameter("http.socket.timeout",(int)20000);

但我也得到了同样的结果!

作为this

只有当HTTP连接上没有活动时,

SO_TIMEOUT才会启动

所以,我怎样才能为等待回应设定一个时限呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-12-27 08:46:15

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

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

然而,没有内置的方式来设定整个请求长度的硬时间限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8581696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档