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.
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