Tengo una aplicación que abre una URL en una vista web, el usuario debe iniciar sesión en un sitio a través de la vista web y recibe una cookie una vez que inició sesión. Tengo problemas para obtener cookies después iniciar sesión.Android - extracción de cookies después de iniciar sesión en webview
El problema es que puedo lograr esto usando android.webkit.CookieManager y genero todas las cookies en una sola cadena.
Sin embargo, quiero lograrlo usando una cookie store (como en java.net.CookieStore) así que necesito estar usando java.net.CookieManager.
Estoy usando el siguiente código dentro de onPageFinished() de un WebViewClient. Sé que el problema es abrir una nueva conexión, donde necesito obtener el contenido de la página actual. Te agradecería un poco de ayuda, gracias
@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());
}
}
ya ha respondido, pero está completo y podría ayudar a alguien, revise esta respuesta http://stackoverflow.com/a/15924948/1714030 –