-1
在我的Java servlet中,我想執行一些操作,具體取決於從請求返回到url的狀態代碼。jsoup statusCode將不會打印404錯誤
我的代碼如下所示:
String source = "http://urltoparse.org/name/date";
boolean validQuery = jsoupHandler.sourceExists(source);
int statusCode = jsoupHandler.srcExists(source);
response.getWriter().println("stat: " + statusCode);
jsoupHandler:
public class JSoupHandler {
public int srcExists(String source) throws IOException {
Connection.Response resp = Jsoup.connect(source).execute();
System.out.println("status" + resp.statusCode());
return resp.statusCode();
}
}
當statusCode == 200
,它打印在瀏覽器中
stat: 200
和status200
在我的jsouphandler控制檯。
然而,當我把在源應該返回404,這樣的:
String source = "http://urltoparse.org/name/date2";
瀏覽器打印沒有和我的控制檯打印這樣的錯誤:
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http://urltoparse.org/name/date2
爲什麼瀏覽器和控制檯的打印語句都不打印狀態碼?我想要做類似
if (statusCode != 200) {
//do something
}
但我無法進入此條件語句。
我看這個鏈接:Jsoup error handling when couldn't connect to website
,但不能讓它爲我工作。
我使用Connection.Response,不Connection.Request,根據本: 「https://jsoup.org/apidocs/org/jsoup/Connection.Response.html #statusCode--'.statusCode()應該返回任何狀態碼,我不知道如果我使用Connection.Request – matcha
'Jsoup.connect(source).execute();'是一個請求並且您正在存儲響應。該請求導致http錯誤,並通過設置'Jsoup.connect(source).ignoreHttpErrors(true).execute();'你告訴Jsoup在連接時忽略http錯誤,否則Jsoup會在http錯誤上拋出異常。 –