Tôi đang cố tạo ứng dụng để xóa nội dung của nhiều trang trên một trang web. Tôi đang sử dụng JSoup để kết nối. Đây là mã của tôi:Xử lý lỗi kết nối và JSoup
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);
}
}
Mọi thứ hoạt động hoàn toàn phần lớn thời gian. Tuy nhiên có một vài điều tôi muốn có thể làm.
Tắt lần đầu tiên trạng thái 404 sẽ trở lại hoặc trạng thái 500 có thể là 301. Với mã bên dưới, mã sẽ chỉ in lỗi và chuyển sang url tiếp theo. Những gì tôi muốn có thể làm là cố gắng để có thể trả lại trạng thái url cho tất cả các liên kết. Nếu trang kết nối in 200, nếu không in mã trạng thái có liên quan. Thứ hai, đôi khi tôi bắt gặp lỗi này "java.net.SocketTimeoutException: Read timeed out" Tôi có thể tăng thời gian chờ của mình tuy nhiên tôi muốn kết nối 3 lần, sau khi thất bại lần thứ 3 tôi muốn thêm URL vào mảng "không thành công" để tôi có thể thử lại các kết nối không thành công trong tương lai.
Ai đó có nhiều kiến thức hơn tôi có thể giúp tôi không?
tạo ra một ngoại lệ –