我有一个在webview中打开URL的应用程序,然后用户必须通过webview登录到站点并在登录后收到cookie.我在登录后遇到cookie时遇到问题.
问题是,我可以使用android.webkit.CookieManager实现这一点,并在一个字符串中输出所有cookie.
但是,我想使用cookie存储(如在java.net.CookieStore中)实现它,所以我需要使用java.net.CookieManager.
我在WebViewClient的onPageFinished()中使用以下代码.我知道问题在于打开一个新连接,我需要从当前页面获取内容.我很感激一些帮助,谢谢
@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());
}
}
Run Code Online (Sandbox Code Playgroud) Android HttpClient是否具有cookie的自动管理功能?