假设我需要检索在我的应用中制作Httpget
的网站的HTML。但是,如果网站有内容的移动版本,我想要这个版本,而不是通常的/桌面版本(例如,如果您在手机中访问http://techcrunch.com/,您将获得一个不同的html,如果您访问此网站在桌面上)如何创建HTTP连接并检索网站HTML的移动版本?
我做了下面的代码:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
request.setHeader("User-Agent", System.getProperty("http.agent"));
HttpResponse response = client.execute(request);
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
String html = sb.toString();
,但在那之后,html
字符串包含了“桌面”的网站,并没有版本在HTML的移动版本。我的直觉说,我只需要为httpget配置“User-Agent”,但似乎我需要配置其他任何东西。 有什么帮助吗?
感谢提示@John,但是在我的手机中调用'System.getProperty(“http.agent”)'时,它会返回'Dalvik/1.6.0(Linux; U; Android 4.1.2; GT-I8190 Build/JZO54K)'。它应该为这个用户代理工作,对吧?我会尝试你的硬编码的用户代理。 – 2013-04-04 18:51:29
我想这可能是这样的,可能不是问题,那么我认为他们通常只用正则表达式在字符串中查找'Android'。也许techcrunch做了一些特别的事情。他们用来检测移动设备的其他方式是查看支持的MIME类型或设备宽度。 – John 2013-04-04 18:54:52
您写过的用户代理工作。现在,我需要找到获取设备用户代理并将其放入httpget的正确方法(如果您认为wabview能够正确执行此操作,那么必须有一种方法可以实现这一点) – 2013-04-04 19:00:03