我想,在连接重置后,HtmlUnit中的Web请求不会再次执行。以下异常消息显示重试连接:
INFO: I/O exception (java.net.SocketException) caught when connecting to the target host: Connection reset
* * org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
那么如何禁用或指定HtmlUnit(java)中的重试次数?
答案 0 :(得分:2)
由于课程的结构如何,我一直在努力。我不是Java专家,但它可能会帮助你,因为我谷歌搜索几天无济于事。我不确定我们是否遇到了同样的问题,但我偶尔会遇到'org.apache.http.NoHttpResponseException:目标服务器在我的集成测试中无法响应'并且正在测试它,希望能解决
这可能是一个不好的方法,并没有涵盖所有的切入点,但也许它会对你有用。
使用名为RetryHttpWebConnection的类子类HttpWebConnection并添加此覆盖:
@Override
protected AbstractHttpClient createHttpClient() {
AbstractHttpClient client = super.createHttpClient();
// Set it to do some retrying in case of closed connection during test.
client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(5, false));
return client;
}
子类WebClient和子类的构造函数执行此操作:
// Override with new web connection that will do retries
// to avoid test failures due to network issues.
setWebConnection(new RetryHttpWebConnection(this));
编辑:我也在调查http://pastebin.com/nmmRYqKN,这可能更符合我的特殊例外。