Java HtmlUnit网页状态代码

Java HtmlUnit网页状态代码,java,http-status-code-404,htmlunit,Java,Http Status Code 404,Htmlunit,我正在尝试获取给定页面的web状态。但是,当出现404错误时,页面不会返回状态代码,而是抛出并出错 int status= webClient.getPage("website").getWebResponse().getStatusCode(); System.out.println( status); 有什么想法吗 我正在查看站点何时超时,但是出于测试目的,我修改了所需站点的url格式,以查看是否可以看到404 您可以这样做: webclient.setThrowExceptionOnFa

我正在尝试获取给定页面的web状态。但是,当出现404错误时,页面不会返回状态代码,而是抛出并出错

int status= webClient.getPage("website").getWebResponse().getStatusCode();
System.out.println( status);
有什么想法吗

我正在查看站点何时超时,但是出于测试目的,我修改了所需站点的url格式,以查看是否可以看到404

您可以这样做:

webclient.setThrowExceptionOnFailingStatusCode(False)
****编辑***

这会打印出您的状态代码:

 WebClient webClient = new WebClient();
 webClient.setThrowExceptionOnFailingStatusCode(false);
 int status = webClient.getPage("http://google.co.uk/ffffff").getWebResponse()
            .getStatusCode();
 System.out.println(status);

打印出404-您的状态代码。

或者,您可以继续允许抛出FailingHttpStatusCodeException(true)。然后在catch子句中获取错误状态代码

...
int status = 0;
Object page = null;
try {
     page = webClient.getPage(webRequest);
     webClient.close();
     if (page instanceof UnexpectedPage) {
         status = ((UnexpectedPage) page).getWebResponse().getStatusCode();
     } else if (page instanceof HtmlPage) {
         status = ((HtmlPage) page).getWebResponse().getStatusCode();
     }
     // do something else ...
} catch (FailingHttpStatusCodeException | IOException e) {
     if (e instanceof FailingHttpStatusCodeException) {
          status = ((FailingHttpStatusCodeException) e).getStatusCode();
     }
     // do something else ...
}

不,我想获取网页的状态代码。即使是404错误。更新了我的答案。除非我错过了你的要求。404您的案例中给出的http状态码是否有效,但是我尝试使用的特定网站由于某些奇怪的原因不起作用。您认为它不起作用是什么意思?它会抛出什么异常?