Android HTTP用户代理

如何在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). 

有什么问题?

如果您不想为创build的每个请求调用setHeader() ,则可以设置http客户端参数CoreProtocolPNames.USER_AGENT 。 这样做后,HTTP客户端会自动将这个头参数添加到每个请求。

就像是:

 client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Custom user agent"); 

当你创build你的HttpClient

要完成接受的答案,如果您希望默认用户代理使用System.getProperty(“http.agent”)

 client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, System.getProperty("http.agent")); 

如果你想设置你自己的用户代理头,那么你必须使用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); 

这只是一个简单的解释如何设置一个自定义的用户代理string。 你的代码可能看起来不同。 重要的部分是setHeader方法。