通过使用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;
}
}
答案 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);
}
}