【发布时间】:2016-09-19 22:19:44
【问题描述】:
在我的 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 在浏览器中,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
但无法让它为我工作。
【问题讨论】: