如何从CookieManager android获取所有cookie?

mia*_*mia 16 cookies android

对于Android CookieManager 课堂有一种方法 - getCookie(String url).
为此,我们需要知道正确的网址.
有没有办法获取所有cookie CookieManager并获取网址.有点像getCookies?? 这只是为了仔细检查我urlgetCookie(String url)呼叫是否有任何问题.当我打电话时,我没有收到cookie.
IP address在网址传递完成.像这样的东西:"xx.x.x.x"

由于
米娅

小智 5

我在Android应用程序中将CookieManager与java.net包一起使用,它的工作原理很吸引人。这是一个代码片段:

import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.HttpCookie;
import java.util.List;

private class MyCookieManager
{       
    private CookieManager mCookieManager = null;

    MyCookieManager() {
        mCookieManager = new CookieManager();
        mCookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
        CookieHandler.setDefault(mCookieManager);
    }

    private List<HttpCookie> getCookies() {
        if(mCookieManager == null)
            return null;
        else
            return mCookieManager.getCookieStore().getCookies();
    }

    public void clearCookies() {
        if(mCookieManager != null)
            mCookieManager.getCookieStore().removeAll();
    } 

    public boolean isCookieManagerEmpty() {
        if(mCookieManager == null)
            return true;
        else 
            return mCookieManager.getCookieStore().getCookies().isEmpty();
    }


    public String getCookieValue() {
        String cookieValue = new String();

        if(!isCookieManagerEmpty()) {
            for (HttpCookie eachCookie : getCookies())
                cookieValue = cookieValue + String.format("%s=%s; ", eachCookie.getName(), eachCookie.getValue());
        }

        return cookieValue;
    }

}
Run Code Online (Sandbox Code Playgroud)


Gin*_*ray -1

您可以使用反射来查看 cookie 映射。它在 4.0.3 中被称为 mCookieMap(也可能在早期版本中)。类型是Map>。

这不是一个很好的方法,因为如果不同的设备或操作系统版本不使用 mCookieMap,您将面临崩溃的风险,但 CookieManager 不提供一种公共方式来了解它访问了哪些 URL。

  • 我知道它最终会破裂。:-) (2认同)