0

我正在尝试将 HTML 数据从WebView. 我已经看到这样做了一千次,我什至自己也得到了它。但是,我的新项目导致了一个有趣的情况:我需要通过 a 登录到一个站点WebView然后拉取 HTML。显然,该Socket方法不起作用,因为要返回网页,您需要 cookie 进行身份验证。我也尝试过这个JavascriptInterface技巧,但这也没有用。我在想实现这一目标的最佳方法是使用HttpGetwith CookieManager? 有谁知道我如何WebView使用 auth cookie 获取原始 HTML 代码?谢谢!

编辑:我做了一些 JS 注入,但没有看到任何 cookie……所以这可能不是 cookie 问题?但是您被重定向到的链接是通用的,例如mainPage?a=1infoPage. 您不能简单地将链接复制/粘贴到另一个浏览器中,您必须登录才能查看这些链接。对于那些是网络专家的人来说,您可能知道一个简单的解决方案。

4

1 回答 1

1

WebView并不是真正用于获取 HTML 以供编程使用,其想法是它只是指向 URL 的直接窗口以供用户交互。

为了得到你想要的,你可以使用 ajava.net.HttpURLConnection和 a CookieManager,它在 Android 上对我来说效果很好,并且在 Android SDK 文档中建议:

// in an activity's onCreate:
cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);

// later on
void getAPage(URL url) {
   HttpURLConnection huc = (HttpURLConnection) url.openConnection();

   System.out.println("hello from huc, response code is: " + huc.getResponseCode());

   // huc.getInputStream() gives you the content.
}

CookieManager将在应用程序的整个生命周期中保留所有 cookie,而无需您做任何额外的事情。你也可以发帖HttpURLConnection

于 2012-10-17T23:32:24.703 回答