我正在尝试获取给定页面的Web状态。但是,当它出现404错误时,页面不会返回状态码,而是抛出错误。HtmlUnit网页状态代码
int status= webClient.getPage("website").getWebResponse().getStatusCode();
System.out.println(status);
任何想法?
我期待看到网站的时间出来的时候,但是出于测试目的我畸形所需网站的网址,看是否我甚至可以看到一个404
我正在尝试获取给定页面的Web状态。但是,当它出现404错误时,页面不会返回状态码,而是抛出错误。HtmlUnit网页状态代码
int status= webClient.getPage("website").getWebResponse().getStatusCode();
System.out.println(status);
任何想法?
我期待看到网站的时间出来的时候,但是出于测试目的我畸形所需网站的网址,看是否我甚至可以看到一个404
根据this
你可以做这样的:
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状态代码 – plasma147
+1与编辑 – Windle