Обработка ошибок соединения и JSoup
Я пытаюсь создать приложение для очистки содержимого нескольких страниц сайта. Я использую JSoup для подключения. Это мой код:
<code>for (String locale : langList){ sitemapPath = sitemapDomain+"/"+locale+"/"+sitemapName; try { Document doc = Jsoup.connect(sitemapPath) .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") .timeout(10000) .get(); Elements element = doc.select("loc"); for (Element urls : element) { System.out.println(urls.text()); } } catch (IOException e) { System.out.println(e); } } </code>
Все работает идеально большую часть времени. Однако есть несколько вещей, которые я хочу сделать.
Во-первых, иногда возвращается статус 404 или статус 500, возможно, 301. С моим кодом ниже он просто напечатает ошибку и перейдет к следующему URL. То, что я хотел бы сделать, это попытаться вернуть статус URL для всех ссылок. Если страница соединяется, напечатайте 200, если нет, напечатайте соответствующий код состояния.
Во-вторых, я иногда улавливаю эту ошибку & quot; java.net.SocketTimeoutException: чтение истекло & quot; Я мог бы увеличить время ожидания, однако я бы предпочел попытаться подключиться 3 раза, после сбоя - в третий раз, когда я хочу добавить URL к & quot; fail & quot; массив, чтобы я мог повторить неудачные соединения в будущем.
Может ли кто-нибудь с большим знанием, чем я, помочь мне?