httpheaders headers getrequest generate ejemplo java http http-headers

headers - ¿Cómo falsifico un cliente de navegador específico cuando uso la biblioteca de red de Java?



request in java (3)

Un pequeño programa mío simplemente se rompió porque, al parecer, el sitio que estaba explorando programáticamente ahora supone que una solicitud Java proviene de un teléfono móvil, y el enlace que estaba buscando no está en su página móvil.

Así que quiero falsificar un acceso a Internet Explorer. ¿Cómo hago eso con java.net?



Suponiendo que está utilizando java.net.URLConnection, llame a setRequestProperty (String, String) para establecer el encabezado de la solicitud en un valor que IE usaría. Por ejemplo, para falsificar IE6:

URL url = new URL("http://google.com"); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 1.2.30703)");

y luego usa el objeto de conexión como antes.

Pero java.net es horrible. En su lugar, usa Apache Commons HttpClient, es mucho más agradable.

Mejor aún, utilice un marco diseñado para navegar por sitios web, como HtmlUnit


IIRC, configure la propiedad del sistema "http.agent" través de System , -D en la línea de comandos, en su archivo JNLP o en otro lugar.