最佳答案
我有一个应用程序,打开一个网址在一个 webview,用户必须然后登录到一个网站通过 webview 和收到一个 cookie 一旦登录。我在登录后得到 cookie 时遇到了问题。
问题是,我可以使用 android.webkit. CookieManager 实现这一点,并将所有 cookie 输出到一个字符串中。
但是,我想使用 cookie 存储来实现它(就像 java.net 中那样)。CookieStore)所以我需要使用 java.net。Cookie Manager.
我在 WebViewClient 的 onPageFinish ()中使用以下代码。我知道问题在于打开一个新的连接,我需要从当前页面获取内容。我很感激你的帮助,谢谢
@Override
public void onPageFinished(WebView view, String url){
Log.d(TAG, "Finished loading: " + url);
CookieSyncManager syncManager = CookieSyncManager.createInstance(Main.this);
syncManager.sync();
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(manager);
try {
URL blah = new URL(url);
HttpURLConnection con = (HttpURLConnection) blah.openConnection();
readStream(con.getInputStream()); // outputting html
}
catch (Exception e) {
}
CookieStore cookieJar = manager.getCookieStore();
List<HttpCookie> cookies = cookieJar.getCookies();
for (HttpCookie cookie: cookies) {
Log.d(TAG, "cookie name : "+cookie.getName().toString());
}
}