jsoup statusCode不会打印404错误

时间:2016-09-19 08:22:37

标签: java jsoup

在我的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

但无法让它为我工作。

1 个答案:

答案 0 :(得分:1)

添加

.ignoreHttpErrors(true)

根据您的要求。

请参阅API:https://jsoup.org/apidocs/org/jsoup/Connection.html#ignoreHttpErrors-boolean-