Android HTTP用户代理

use*_*926 38 connection 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
Run Code Online (Sandbox Code Playgroud)

但是当我使用Apache连接时,结果是不同的:

[HTTP_USER_AGENT] => Apache-HttpClient/UNAVAILABLE(java 1.4).
Run Code Online (Sandbox Code Playgroud)

有什么问题?

Mar*_*ues 71

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

client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
                                System.getProperty("http.agent"));
Run Code Online (Sandbox Code Playgroud)

  • 这个答案比上面的答案更好!谢谢! (8认同)
  • 其他答案没有回答这个问题.谢谢! (3认同)

Nic*_*ong 60

如果您不想为setHeader()您创建的每个请求调用,可以设置http客户端参数CoreProtocolPNames.USER_AGENT.执行此操作后,HTTP客户端将自动将此标头参数添加到每个请求.

就像是:

client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Custom user agent");
Run Code Online (Sandbox Code Playgroud)

当你创建你的HttpClient.


Oct*_*ean 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);
Run Code Online (Sandbox Code Playgroud)

这只是如何设置自定义用户代理字符串的简短说明.您的代码可能看起来不同.重要的是setHeader方法.