Подтвердить что ты не робот

Как получить все файлы cookie с помощью CookieManager android?

Для класса Android CookieManager существует метод - getCookie(String url).
Для этого нам нужно знать правильный URL. Есть ли способ получить все файлы cookie в CookieManager и получить URL-адреса. что-то вроде getCookies?? Это всего лишь двойная проверка, если я нахожу что-то не так в моем вызове url для getCookie(String url). Я не получаю cookie, когда я называю то же самое.
Я передаю полный IP address здесь в url. Что-то вроде этого: "xx.x.x.x"

Спасибо
Mia

4b9b3361

Ответ 1

Я использовал CookieManager с пакетом java.net в своем приложении для Android, и он работает как шарм. Вот фрагмент кода:

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

}

Ответ 2

Вы можете использовать отражение, чтобы увидеть карту cookie. Он называется mCookieMap в 4.0.3 (и, вероятно, в более ранних версиях). Тип: Map > .

Это не отличный способ сделать это, потому что вы рискуете сломаться на разных устройствах или версиях ОС, если они не используют mCookieMap, но CookieManager не предлагает публичный способ узнать, какие URL-адреса он посетил.