android cookies android-webview cookiestore

Android: extracción de cookies después del inicio de sesión en webview



android-webview cookiestore (3)

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 haya iniciado sesión. Tengo problemas para obtener cookies después de iniciar sesión.

El problema es que puedo lograrlo usando android.webkit.CookieManager y genero todas las cookies en una sola cadena.

Sin embargo, quiero lograrlo utilizando una cookie store (como en java.net.CookieStore), así que necesito usar 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. 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()); } }


Era bastante tarde, pero podría ayudar a alguien

puedes obtener el valor de la cookie usando esto

getCookie("http://www.example.com","CookieName");

Declara la función como

public String getCookie(String siteName,String CookieName){ String CookieValue = null; CookieManager cookieManager = CookieManager.getInstance(); String cookies = cookieManager.getCookie(siteName); String[] temp=cookies.split(";"); for (String ar1 : temp ){ if(ar1.contains(CookieName)){ String[] temp1=ar1.split("="); CookieValue = temp1[1]; break; } } return CookieValue; }


Puede extraer todas las cookies de la URL actual de esta manera desde webview como cadena:

@Override public void onPageFinished(WebView view, String url){ String cookies = CookieManager.getInstance().getCookie(url); Log.d(TAG, "All the cookies in a string:" + cookies); }