example - Agente de usuario HTTP de Android
html fromhtml android example (4)
¿Cómo obtengo el dispositivo real en http_user_agent? Cuando uso un WebView, puedo obtener el valor real de esta manera:
[HTTP_USER_AGENT] => Mozilla/5.0(Linux; U; Android 2.2; en-gb; LG-P500 Build/FRF91)
AppleWebKit/533.0 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Pero cuando uso una conexión Apache, el resultado es diferente:
[HTTP_USER_AGENT] => Apache-HttpClient/UNAVAILABLE(java 1.4).
¿Cuál es el problema?
Para completar la respuesta aceptada, si desea el agente de usuario predeterminado, use System.getProperty ("http.agent")
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
System.getProperty("http.agent"));
Puede leer useragent usando webview:
new WebView(this).getSettings().getUserAgentString();
O usando la propiedad del sistema:
System.getProperty("http.agent")
Fuente: https://.com/a/50610164/3317927
Si desea establecer su propio encabezado de agente de usuario, entonces debe usar el método setHeader
.
En el caso de una solicitud HTTP Post, simplemente configúrelo así.
private String url = "http://myfancyurl.com/";
private String ua = "My Custom UA Header String";
private HttpPost post = new HttpPost(url);
post.setHeader("User-Agent", ua);
Esta fue solo una breve explicación de cómo configurar una cadena de agente de usuario personalizado. Tu código puede verse diferente. La parte importante es el método setHeader
.
Si no desea llamar a setHeader()
para cada solicitud que cree, puede establecer el parámetro del cliente http CoreProtocolPNames.USER_AGENT
. Después de hacer esto, el cliente HTTP agregará automáticamente este parámetro de encabezado a cada solicitud.
Algo como:
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Custom user agent");
cuando creas tu HttpClient
.