Я написал небольшой фрагмент кода, который должен скачать текст данного сайта с помощью Jsoup (1.6.2).Jsoup Timeout не работает должным образом
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 должен выбросить исключение. Но это не тот случай, когда в stdout есть периоды, превышающие 100k.
Как это возможно и что я делаю неправильно?
Приветствия Daniel
Извините, но не могли бы вы объяснить это более подробно? –
@ Даниэль: см. Править –