在我的Java servlet中,我想根据请求返回到url的状态代码执行一些操作。
我的代码如下所示:
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
和jsouphandler控制台中的status200
。
然而,当我输入一个应该返回404的源代码时,就像这样:
String source = "http://urltoparse.org/name/date2";
浏览器不打印任何内容,我的控制台会输出如下错误:
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http://urltoparse.org/name/date2
为什么浏览器和控制台的print语句都不打印状态代码?我想做像
这样的事情if (statusCode != 200) {
//do something
}
但是我无法进入这个条件声明。
我看过这个链接:Jsoup error handling when couldn't connect to website
但无法让它为我工作。
答案 0 :(得分:1)
添加
.ignoreHttpErrors(true)
根据您的要求。
请参阅API:https://jsoup.org/apidocs/org/jsoup/Connection.html#ignoreHttpErrors-boolean-