#java
#java
Вопрос:
Я пытаюсь написать Java-программу, которая будет загружать страницы, на которые указывают допустимые ссылки, и сообщать о других ссылках как о неработающих. Моя проблема в том, что URL-адрес Java загрузит соответствующую страницу, если URL-адрес действителен, и результаты поисковой системы для URL-адреса, если URL-адрес недействителен.
Существует ли функция Java, которая определяет, соответствует ли URL-адрес допустимой странице . . . большое спасибо,
Джоэл
Комментарии:
1. Пример «законной» или «валидной» ссылки? Как насчет публикации некоторого кода?
Ответ №1:
HttpURLConnection#getResponseCode выдаст вам код состояния HTTP
Ответ №2:
Вы можете получить код ответа HTTP для URL-адреса следующим образом:
public static int getResponseCode(URL url) throws IOException {
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection)) {
throw new IllegalArgumentException("not an HTTP url: " url);
}
HttpURLConnection httpConn = (HttpURLConnection) conn;
return httpConn.getResponseCode();
}
Теперь вопрос в том, что вы считаете «допустимой» веб-страницей? Для меня, если URL-адрес анализируется правильно, и его протокол «http» (или https) и его код ответа находится в блоке 200 или 302 (найден / перенаправлен) или 304 (не изменен), то он действителен:
public boolean isValidHttpResponseCode(int code) {
return ((code / 100) == 2) || (code == 302) || (code == 304);
}