如何从CookieManager android获取所有cookie?

时间:2012-05-15 15:29:50

标签: android cookies

对于Android CookieManager课程,有一种方法 - getCookie(String url) 为此,我们需要知道正确的URL 有没有办法获取CookieManager中的所有cookie并获取网址。 有点像getCookies ?? 这只是为了仔细检查我url getCookie(String url)电话中是否有任何错误。 当我打电话时,我没有收到饼干 我在网址传递完整IP address。这样的事情:"xx.x.x.x"

感谢
米亚

2 个答案:

答案 0 :(得分:4)

我在我的Android应用程序中使用了带有java.net包的CookieManager,它就像一个魅力。这是一段代码:

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;
    }

}

答案 1 :(得分:0)

您可以use reflection查看Cookie地图。它在4.0.3中称为mCookieMap(也可能在早期版本中)。类型是Map&gt;。

这不是一个很好的方法,因为如果他们不使用mCookieMap,你将冒险打破不同的设备或操作系统版本,但CookieManager不提供公开的方式来知道它访问了哪些URL。 / p>