HtmlUnit - 服务器关闭后,服务器(HTTP)状态代码不会更改

时间:2015-05-09 15:44:05

标签: java selenium-webdriver automation htmlunit

通过使用HtmlUnit浏览器,我获得了HTTP标准响应代码。根据响应代码,我们决定服务器是否正在运行以控制另一个线程。

我们在这里面临的问题是,如果我们停止服务器,我们仍然可以获得200(正在运行)的响应代码。

网站的索引文件是纯HTML文件,因此我们尝试清除Cookie和缓存。但是,即使关闭服务器,我们仍然会将响应代码设置为200。请指导找到一种方法来跟踪正在运行的服务器何时关闭/没有响应(HttpHostConnectException)

HtmlUnit代码:

while(alive)
{
    try
    {
    c.clear();
    cm.clearCookies();
    SST = client.getPage("http://**ip**/DDT/").getWebResponse().getStatusCode();
    }
    catch(HttpHostConnectException he)
    {
        isServerUP = false;
    }
    catch(FailingHttpStatusCodeException fhe)
    {
        isServerUP = false;
    }
    System.out.println(SST);
    if(SST == 200)
    {
        isServerUP = true;
    }
    else
    {
        isServerUP = false;
    }
}

1 个答案:

答案 0 :(得分:1)

我无法重现,可能WebClient配置不同。

使用最新版本,以下成功处理停止/启动服务器:

try (WebClient webClient = new WebClient()) {
    while (true) {
        try {
            int status = webClient.getPage("http://localhost/test.html").getWebResponse().getStatusCode();
            System.out.println(new Date() + " " + status);
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
        Thread.sleep(1000);
    }
}