我正在嘗試獲取給定頁面的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