如何在http_user_agent中获取真实设备? 当我使用WebView时,我可以得到这样的真正价值:
[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
但是当我使用Apache连接时,结果是不同的:
[HTTP_USER_AGENT] => Apache-HttpClient/UNAVAILABLE(java 1.4).
有什么问题?
答案 0 :(得分:69)
要完成接受的答案,如果您希望默认用户代理使用 System.getProperty(“http.agent”)
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
System.getProperty("http.agent"));
答案 1 :(得分:60)
如果您不想为您创建的每个请求致电setHeader()
,可以设置http客户端参数CoreProtocolPNames.USER_AGENT
。执行此操作后,HTTP客户端将自动将此标头参数添加到每个请求。
类似的东西:
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Custom user agent");
创建HttpClient
。
答案 2 :(得分:13)
如果要设置自己的用户代理标头,则必须使用setHeader
方法。
如果是HTTP Post请求,您只需将其设置为这样。
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);
这只是如何设置自定义用户代理字符串的简短说明。您的代码可能看起来不同。重要的部分是setHeader
方法。
答案 3 :(得分:0)
您可以使用webview阅读useragent:
new WebView(this).getSettings().getUserAgentString();
或使用系统属性:
System.getProperty("http.agent")