Android – extraction de cookies après la connexion à webview

J’ai une application qui ouvre une URL dans une vue Web, l’utilisateur doit alors se connecter à un site via la vue Web et reçoit un cookie une fois connecté. J’ai des problèmes pour obtenir des cookies après la connexion.

Le problème est que je peux y arriver en utilisant android.webkit.CookieManager et en générant tous les cookies dans une seule chaîne.

Cependant, je veux y parvenir en utilisant un magasin de cookies (comme dans java.net.CookieStore), je dois donc utiliser java.net.CookieManager.

J’utilise le code suivant dans le onPageFinished () d’un WebViewClient. Je sais que le problème est lié à l’ouverture d’une nouvelle connexion, où je dois obtenir le contenu de la page en cours. J’apprécierais de l’aide, merci

@Override public void onPageFinished(WebView view, Ssortingng 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 cookies = cookieJar.getCookies(); for (HttpCookie cookie: cookies) { Log.d(TAG, "cookie name : "+cookie.getName().toSsortingng()); } } 

Vous pouvez extraire tous les cookies actuels url de cette manière à partir de webview:

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

C’était un peu tard, mais ça pourrait aider quelqu’un

vous pouvez obtenir la valeur de cookie en utilisant cette

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

Déclarez la fonction comme

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

Cochez cette case – Transmettez les cookies de HttpURLConnection (java.net.CookieManager) à WebView (android.webkit.CookieManager)

Si vous souhaitez obtenir des cookies de Webview, vous devrez utiliser android.webkit.CookieManager , à partir de toute HttpUrlConnection , cependant, vous pouvez extraire des cookies en java.net.CookieStore

Vous devrez parsingr la chaîne où vous obtenez tous les cookies.