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

如何在HtmlUnit(java)中禁用或指定重试次数?,java,htmlunit,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中的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)中禁用或指定重试次数呢?

由于类的结构,我一直在处理这个问题。我不是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));

编辑:我也在研究,这可能是我的特殊异常所需要的更多信息。

您可以使用WebClientVar设置超时。setTimeout(int timeout)。。。但我不知道如何根据重试次数停止连接,抱歉。我已切换到HttpURLConnection以解决我的问题。