Question Gestionnaire de cookies Android - Comment obtenir tous les cookies


Je dois obtenir tous les cookies stockés dans la vue Web. Actuellement, la vue Web par défaut.

https://developer.android.com/reference/android/webkit/CookieManager.html

Actuellement, il ne supporte que:

  • getCookie (URL de chaîne)

J'ai besoin de la possibilité d'obtenir tous les cookies sans connaître le nom de domaine exact.

Tout conseil apprécié Merci, ré


12
2017-09-17 01:07


origine


Réponses:


Vous pouvez créer votre propre stockage de cookies et intercepter les cookies chargés par WebView. Exemple d'utilisation java.net.CookieManager comme stockage:

val cookieManager = java.net.CookieManager()

webView.webViewClient = object : WebViewClient() {
    override fun onPageFinished(view: WebView?, url: String?) {
        CookieManager.getInstance()
                .getCookie(url)
                ?.let {
                    val uri = URI(url)
                    HttpCookie.parse(it).forEach {
                        cookieManager.cookieStore.add(uri, it)
                    }
                }
    }
}

0
2017-07-24 11:51



Pour faire ce que vous voulez, vous devez travailler directement avec le gestionnaire de cookies, ne vous inquiétez pas pour la vue Web pour le moment. Obtenir tous les cookies est réalisé comme ceci:

List<HttpCookie> cookies = ((CookieManager) CookieManager.getDefault()).getCookieStore().getCookies();
for (HttpCookie cook : cookies) {
    Log.i("COOKIE", cook.toString());
}

Toutefois, soyez prudent car il peut ne pas y avoir de magasin par défaut - si tel est le cas, vous devez définir une valeur par défaut au démarrage de votre application (avant d'utiliser des vues Web).

if (CookieManager.getDefault() == null) {
    CookieHandler.setDefault(new CookieManager());
}

Une autre chose à noter est que si vous ne voyez pas tous les cookies que vous attendez, assurez-vous d'activer les cookies tiers.

CookieManager.getDefault().setAcceptThirdPartyCookies(mWebView,true);

0
2017-07-27 09:14



Vous pouvez obtenir tous les cookies enregistrés pour une URL donnée, getCookie (URL de chaîne) renvoie tous les cookies enregistrés.

Les cookies retournés seront comme:

JSESSIONID=0000onl9SHuMC3ZJf458CIpbrEl:19gnt4k1t; REFERRAL_USER=engineers; WC_SESSION_ESTABLISHED=true; WC_AUTHENTICATION_3631539=3631539%2CE%2BcClHFeMbs73DLBeC7QvnnY5%2Fs%3D; WC_USERACTIVITY_3631539=3631539%2C0%2Cnull%2Cnull%2C1532350948551%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2CNUEXcX7rnoqLCFzd8xkUPTnAL9QSWpAzmEo6IJO9fu8WQTnhipMYng43xblijeoPxFuX0FvTXsm8wO2%2FbxmyMZsCeEPUJgekXGsVRjFofpqWcJyUOCqrgi43lLVUnHxJnPWzTxxN0m%2Bd47TxN748Y2x3a45W0NI%2FwLKmZPLDV6DZ9UN8YDeftFDm78%2BzBsK9Ks2%2FjckUUPB9XG29VJO5dQ%3D%3D; WC_PERSISTENT=GZCx3nPwW%2FKjPxC0zjh89MO0HII%3D%0A%3B2018-07-23+14%3A02%3A28.86_1532350948538-50312_11151; WC_ACTIVEPOINTER=44%2C11151; optimizelyEndUserId=oeu1532350951282r0.11614513469034904; optimizelySegments=%7B%228508372543%22%3A%22campaign%22%2C%228509193630%22%3A%22true%22%2C%228505021645%22%3A%22unknown%22%2C%228502881734%22%3A%22abdul%22%7D; optimizelyBuckets=%7B%7D; WC_CartOrderId_11151=; WC_timeoffset=GMT%2B5.5; WC_AUTHENTICATION_3631540=3631540%2CH1%2FCgHnAt1kwIc9ymflAhjS7BXk%3D; WC_USERACTIVITY_3631540=3631540%2C11151%2Cnull%2Cnull%2C1532350959571%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2CXtw8GVpz7pReUjp0leou4E05yeQKh%2B2cZZWsrMViMMbHZlli7uuAjPGTsE7mcnU6B9mXFajA8x33ZYxwUmYZwGTxp925es17p%2BHY%2F%2B39IHZbkXp5ixubS3Oha%2BKqtN6s96jtY5SPEUlKCes444oJJZzvFMTfaEu%2B6IKRIA4mi1pZb6ymsdp7SJjhk0wIOH2yBDof7%2BDQPUkhiYw5rOA%2BnBSS5MCkFt96CDAKH5vk9ug%3D; _ga=GA1.2.864997029.1532350960; _gid=GA1.2.1765809776.1532350960; sc.ASP.NET_SESSIONID=o1g5im3e5fmvtg43q1xknwor; _4c_=XVJdT%2BMwEPwryFJ5KiWOHSeuVJ3SFii0d9drAVFeUD4cEpLUruM0pIj%2FzjaH0B1%2BsLyzm5nJ7r6hJhVbNMQOsYljccaYh%2FsoF22Fhm8oUsd7f7xqXaAhSo1R1fD8vGmaQZW3SksjIjOIZHke1lkRn5XtWST3Qv%2BoTfkUBaUKsuftyB9P7xanR6gUcVaXI7F9zrZC6CpQqsMrWetIjCAssm1%2BmutWGTlalw9%2FUq9nX768Pvbs8X6mdl4yudn%2FGmde5K5K27fu9VLmaSHNFa3m1vTisFC3wcJNJ4vbzWa9vE%2FNzn2Ztct16fnWouKrXNXF3cJp%2FM1hNZPt67R99HN%2Boe1d%2BfgsHH09v%2FR%2B38zz4OHW%2BJOdmQSpysIZm%2B82u4K51QqM0IM1H6%2BDlyAnV4eZWB1malpsmNv0yPQ0jqF9o65TPeIvA222Qq9EIrQOCtRHkYwFtBLzgTOwIK4robMYkH%2BbAnioZQMpSExSLUtx8lOGWSFOGIVkApNBjMcJ5oS6TuxxEkeYipCIMCAhSxwLJ1AnYY7I38ZagkQf6c5GRwpRlZmjk%2F8HCbgRujx%2BB08Fw0cYHlf%2B0931FAKPUc5dy%2BaDr6Wx0Hsfvf7dIkpcwhyKXaAxsDJQbh0PVHR%2F2a0Tojhm2KYWsRI3ioXj2YnDaSJCOA6LHBDs%2BKiFbcYZIQ4GAgV83fewop9yoEUgze1POUy%2F5I7Wv1V35gjF%2FLu59%2FcP

Si vous remarquez que toutes les valeurs des cookies sont séparées par un point-virgule (;), vous pouvez diviser toutes les valeurs en utilisant la méthode split (";") de la classe String, qui renverra un tableau de chaînes.

J'espère que ça aide... Heureux codage :)


-1
2017-07-23 13:09