假設我需要檢索在我的應用中製作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