«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Какой предпочтительный метод Java для проверки связи с URL-адресом HTTP?

Какой предпочтительный метод Java для проверки связи с URL-адресом HTTP?

Опубликовано 8 ноября 2024 г.
Просматривать:672

 What\'s the Preferred Java Method for HTTP URL Ping?

Предпочитаемый метод Java для проверки связи с URL-адресом HTTP

Чтобы убедиться в доступности URL-адреса HTTP, крайне важно использовать надежный подход, который обеспечивает точную и эффективные результаты. Вот варианты, доступные в Java:

Использование java.net.URLConnection:

Упомянутый вами подход с использованием java.net.URLConnection является жизнеспособным вариантом. Он позволяет вам установить соединение и проверить, доступен ли URL-адрес.

try {
    URLConnection connection = new URL(url).openConnection();
    connection.connect();
    LOG.info("Service "   url   " available, yeah!");
    available = true;
} catch (Exception e) {
    LOG.info("Service "   url   " unavailable, oh no!", e);
    available = false;
}

Этот метод эффективно имитирует запрос GET к URL-адресу и проверяет его доступность.

Дополнительные соображения:

  • Закрытие соединение: Класс java.net.URLConnection не требует явного закрытия. Он обрабатывается неявно.
  • Отправка запроса HEAD: Чтобы отправить запрос HEAD вместо GET, приведите полученный URLConnection к HttpURLConnection и используйте setRequestMethod("HEAD") для указания метода запроса. . Однако обратите внимание, что некоторые веб-серверы могут возвращать ошибку HTTP 405 (не разрешено) для запроса HEAD.
  • Проверка доступности контента сервера: Одной проверки доступности сервера может быть недостаточно. Чтобы определить, доступно ли содержимое URL-адреса, проверьте, равен ли код ответа HTTP 200.
  • Использование java.net.Socket: Другой вариант — использовать java.net.Socket. Этот метод подключается напрямую к IP-адресу и порту сервера, минуя уровень HTTP.

Альтернативные подходы:

  • java.net .InetAddress#isReachable(): этот метод может проверять доступность хоста, но он не проверяет порт 80 явно, что может привести к ложноотрицательным результатам.

Пример служебного метода:

public static boolean pingURL(String url, int timeout) {
    url = url.replaceFirst("^https", "http"); // Avoid SSL exceptions

    try {
        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        return (200 

Этот метод использует запрос HEAD с указанным тайм-аутом для проверки доступности URL-адреса. Он возвращает true, если код ответа находится в диапазоне 200–399, что указывает на успешное соединение.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3