"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 un agente de usuario personalizado para conexiones URL en Java sin el identificador de tiempo de ejecución de Java?

¿Cómo configurar un agente de usuario personalizado para conexiones URL en Java sin el identificador de tiempo de ejecución de Java?

Publicado el 2024-12-22
Navegar:164

How to Set a Custom User Agent for URLConnections in Java without the Java Runtime Identifier?

Personalizar el agente de usuario para conexiones URL en Java

Cuando se utiliza URLConnection en Java para recuperar contenido web, a menudo es necesario configurar un agente de usuario personalizado para rastreo preciso de sitios web y simulación de usuarios. Sin embargo, el tiempo de ejecución predeterminado de Java agrega su propio identificador a la cadena del agente de usuario, lo que puede no ser deseable en ciertos escenarios.

La consulta

Un desarrollador de Java buscó ayuda al configurar un agente de usuario sin el sufijo "Java/1.5.0_19" agregado por el tiempo de ejecución. El usuario proporcionó un fragmento de código que ilustra cómo intentó configurar el agente de usuario usando setRequestProperty().

La solución

Afortunadamente, en Java 1.6.30 y posteriores, configurar el agente de usuario a través de setRequestProperty("User-Agent", "") funciona perfectamente, sin que se agregue ninguna información adicional sobre el tiempo de ejecución de Java. Para demostrar esto, el desarrollador usó netcat para escuchar las solicitudes HTTP entrantes y observó que el agente de usuario personalizado se envió exitosamente sin el sufijo Java.

Implementación completa

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

public class CustomUserAgent {

    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());
    }

}

Al utilizar este enfoque, los desarrolladores pueden configurar eficazmente agentes de usuario para sus conexiones URL en Java sin adiciones específicas de Java no deseadas, lo que garantiza el comportamiento deseado para su web scraping u otras tareas de comunicación.

Ú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