我正在尝试获取给定页面的网络状态。但是,当它出现 404 错误时,页面不会返回状态代码,而是会抛出错误。
int status= webClient.getPage("website").getWebResponse().getStatusCode();
System.out.println( status);
有任何想法吗?
我希望查看站点何时超时,但是出于测试目的,我将所需网站的 url 格式错误,以查看是否可以看到 404。
我正在尝试获取给定页面的网络状态。但是,当它出现 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 ...
}