我编写了一小段代码,它应该使用 Jsoup (1.6.2) 下载给定网站的文本。
public String readPage(String url) {
    try {
        long start = System.currentTimeMillis();
        String text = Jsoup.connect(url).timeout(10000).get().html();
        System.out.println(System.currentTimeMillis() - start);
        return text;
    }
    catch (IOException e) {
        // we need to do this because the log file is flooded with useless error messages 
        if ( e.getMessage().contains("Unhandled content type") ||
             e.getMessage().contains("Premature EOF") ||
             e.getMessage().contains("Read timed out") ||
             e.getMessage().contains("403 error loading URL") ||
             e.getMessage().contains("404 error loading URL") ||
             e.getMessage().contains("405 error loading URL") ||
             e.getMessage().contains("500 error loading URL") ||
             e.getMessage().contains("503 error loading URL") ) {
            logger.debug(String.format("Error crawling website: %s", url));
        }
        else logger.error(String.format("Error crawling website: %s", url), e);
    }
    return "";
}
我在线程列表中启动此方法,每个线程负责下载单个网站。在我看来(这显然是错误的),每个 system.out 都应该显示一个低于 10000 的数字,因为 Jsoup 应该抛出一个异常。但情况并非如此,标准输出中的时间跨度高于 100k。
这怎么可能,我做错了什么?
干杯丹尼尔