"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cuál es el método Java preferido para hacer ping a URL HTTP?

¿Cuál es el método Java preferido para hacer ping a URL HTTP?

Publicado el 2024-11-08
Navegar:806

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

Método Java preferido para ping de URL HTTP

Para determinar la disponibilidad de una URL HTTP, es crucial emplear un enfoque confiable que proporcione datos precisos. y resultados eficientes. Aquí hay opciones disponibles en Java:

Uso de java.net.URLConnection:

El enfoque que mencionó, utilizar java.net.URLConnection, es una opción viable. Le permite establecer una conexión y comprobar si se puede acceder a la 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;
}

Este método simula efectivamente una solicitud GET a la URL y verifica su disponibilidad.

Consideraciones adicionales:

  • Cierre la conexión: La clase java.net.URLConnection no requiere un cierre explícito. Se maneja implícitamente.
  • Envío de una solicitud HEAD: Para enviar una solicitud HEAD en lugar de un GET, convierta la URLConnection obtenida a HttpURLConnection y use setRequestMethod("HEAD") para especificar el método de solicitud . Sin embargo, tenga en cuenta que algunos servidores web pueden devolver un error HTTP 405 (no permitido) para una solicitud HEAD.
  • Prueba de la disponibilidad del contenido del servidor: Verificar la disponibilidad del servidor por sí sola puede no ser suficiente. Para determinar si el contenido de la URL está disponible, verifique si el código de respuesta HTTP es 200.
  • Usando java.net.Socket: Otra opción es usar java.net.Socket. Este método se conecta directamente a la dirección IP y al puerto del servidor, sin pasar por la capa HTTP.

Enfoques alternativos:

  • java.net .InetAddress#isReachable(): este método puede verificar la disponibilidad del host, pero no prueba explícitamente el puerto 80, lo que puede generar falsos negativos.

Ejemplo de método de utilidad:

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 

Este método utiliza una solicitud HEAD con un tiempo de espera específico para verificar la disponibilidad de la URL. Devuelve verdadero si el código de respuesta está en el rango 200-399, lo que indica una conexión exitosa.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3