如何在HtmlUnit(java)中禁用或指定重试次数?

时间:2012-05-04 16:45:13

标签: java htmlunit

我想,在连接重置后,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)中的重试次数?

1 个答案:

答案 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,这可能更符合我的特殊例外。