Android WebView整页

时间:2011-07-20 16:27:12

标签: android web webview user-agent

我正在创建一个涉及WebView的应用程序。问题是我想加载整个页面而不是移动页面,所以我更改了用户代理。然而,有些页面加载了移动版本。

以下是我尝试过的两个版本的代码:

1.webview.getSettings().setUserAgentString("Mozila ");
2. String DESKTOP_USERAGENT = webview.getSettings().getUserAgentString (); DESKTOP_USERAGENT = DESKTOP_USERAGENT.replace("Mobile ",""); webview.getSettings().setUserAgentString(DESKTOP_USERAGENT);

这是在任何情况下加载移动版本的网页示例:

http://www.jurnalul.ro http://www.androidzoom.com

1.是否有人知道如何欺骗服务器并告诉他我使用的是桌面而不是手机? 2.网站如何知道我使用的是移动版?

非常感谢, 勒兹

2 个答案:

答案 0 :(得分:2)

问题可能是,如果您使用的是运营商通过代理路由所有HTTP请求的设备,并且代理正在更改用户代理。使用您自己的服务器检查另一端,使用nc -l 80 -vvv您的请求确实正在发送您已修改的用户代理。

编辑:一些具体的故障排除步骤

  1. 将路由器上的端口9090转发到台式机或笔记本电脑。
  2. 下载netcat
  3. 使用命令“nc -l 9090 -vvv
  4. 运行netcat
  5. 在Android应用程序的WebView中,使用您注入的用户代理发出HTTP请求http://your.ip.address:9090
  6. 在运行netcat的终端中,您将看到纯文本的HTTP请求转储。在那里,您可以检查HTTP标头User-Agent,看它是否已被代理服务器更改。
  7. 您无法使用Wireshark或Fiddler测试这些内容,因为它发生在WAN中。您需要在接收端测试它,无论是在服务器上还是在您自己的台式机上。

答案 1 :(得分:1)

webview.getSettings().setUserAgent(1);//for desktop 1 or mobil 0.