如何阻止我的Android应用程序获取java.net.URL的MOBILE(REDIRECTED)版本



对于维基百科的URL,此代码在单元测试中有效,但在android模拟器中获得不同的html数据,因为它被重定向到维基百科的移动网站。如何在java中停止重定向?

public static String getURLContent(String url) throws Exception {
    URL u = new URL(url);
    Scanner scanner = new Scanner(u.openStream(), "UTF-8");
    scanner.useDelimiter("\A");
    String htmlContent = scanner.next();
    scanner.close();
    return htmlContent;
}

在HttpURLConnection上使用setRequestProperty来防止重定向到移动版本的网页:

public static String getURLContent(String url) throws Exception {
    URL urlObject = new URL(url);
    HttpURLConnection con = (HttpURLConnection) urlObject.openConnection();
    con.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
    InputStream is = con.getInputStream();      
    Scanner scanner = new Scanner(is).useDelimiter("\A");
    String htmlContent = scanner.hasNext() ? scanner.next() : "";
    return htmlContent;
}

最新更新