"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 > ¿Cómo configurar correctamente el agente de usuario en Java URLConnection?

¿Cómo configurar correctamente el agente de usuario en Java URLConnection?

Publicado el 2024-11-16
Navegar:455

How to Correctly Set the User-Agent in Java URLConnection?

Configuración del agente de usuario de una conexión URL de Java

Al intentar analizar una página web utilizando Java con una conexión URL y configurar el agente de usuario en una conexión especificada valor, se puede agregar un "Java/1.5.0_19" adicional al final. Esto surge debido a una limitación en versiones anteriores de Java.

Solución (Java 1.6.30 y posteriores)

En Java 1.6.30 y posteriores, este problema ha sido resuelto. Configurar el agente de usuario usando setRequestProperty("User-Agent", "Mozilla ...") ahora funciona correctamente sin agregar la versión de Java.

Verificación

Para verificar Para esto, puede escuchar en un puerto usando netcat, que muestra los encabezados HTTP sin formato de las solicitudes entrantes. Sin configurar el agente de usuario, los encabezados mostrarán:

GET /foobar HTTP/1.1
User-Agent: Java/1.6.0_30
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Al configurar el agente de usuario, los encabezados mostrarán:

GET /foobar HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Código de ejemplo (Java 1.6.30)

El siguiente ejemplo de código demuestra cómo configurar correctamente el agente de usuario:

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;


public class TestUrlOpener {

    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080/foobar");
        URLConnection hc = url.openConnection();
        hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

        System.out.println(hc.getContentType());
    }

}
Ú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