17

对于Android CookieManager 类,有一个方法 -- getCookie(String url)
为此,我们需要知道正确的 url。
有没有办法让所有 cookie 进入CookieManager并获取 urls 。类似的东西getCookies??这只是为了仔细检查我urlgetCookie(String url)电话是否有任何错误。当我调用它时,我没有得到 cookie。
我在IP address这里通过完整的 url。像这样的东西:"xx.x.x.x"

谢谢米娅
_

4

2 回答 2

7

我在我的 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;
    }

}
于 2014-04-29T12:46:05.370 回答
-1

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

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

于 2012-08-14T18:51:38.670 回答