【发布时间】:2011-10-09 11:49:46
【问题描述】:
有没有办法为HttpClient的整个执行指定超时?
我尝试了以下方法:
httpClient.getParams().setParameter("http.socket.timeout", timeout * 1000);
httpClient.getParams().setParameter("http.connection.timeout", timeout * 1000);
httpClient.getParams().setParameter("http.connection-manager.timeout", new Long(timeout * 1000));
httpClient.getParams().setParameter("http.protocol.head-body-timeout", timeout * 1000);
它实际上工作得很好,除非远程主机发回数据——即使是一字节/秒——它将永远继续读取!但我想在最多 10 秒内中断连接,无论主机是否响应。
【问题讨论】:
-
@RealMan 的回答对我有用。
-
如果是异步的,有超时。但它是同步的,所以没有办法按照
HttpClient的方式。
标签: java timeout apache-httpclient-4.x