android - файлы - как посмотреть куки на андроиде




Как реализовать обработку файлов cookie на Android с помощью OkHttp? (2)

Используя OkHttp by Square https://github.com/square/okhttp , как я могу:

  1. Получить файл cookie, возвращенный с сервера
  2. Храните файл cookie для предстоящих запросов.
  3. Использовать сохраненный файл cookie в последующих запросах
  4. Обновить файл cookie, возвращенный последующим запросом

В идеале, cookie будет храниться, обновляться и обновляться автоматически с каждым запросом.


Мне нужно было разделить Cookie Jar по умолчанию (CookieManager.getInstance ()), так что это, похоже, работает нормально для меня.

return new CookieJar() {

        @Override
        public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
            CookieManager cookieManager = CookieManager.getInstance();

            for (Cookie cookie : cookies) {
                cookieManager.setCookie(url.toString(), cookie.toString());
            }
        }

        @Override
        public List<Cookie> loadForRequest(HttpUrl url) {
            CookieManager cookieManager = CookieManager.getInstance();
            List<Cookie> cookies = new ArrayList<>();
            if (cookieManager.getCookie(url.toString()) != null) {
                String[] splitCookies = cookieManager.getCookie(url.toString()).split("[,;]");
                for (int i=0; i<splitCookies.length; i++) {
                    cookies.add(Cookie.parse(url, splitCookies[i].trim()));
                }
            }
            return cookies;
        }
    };

Pre OkHttp 3 , вы можете передать CookieHandler в экземпляр OkHttpClient. Вы можете использовать реализацию CookieManager с java.net, или вы можете реализовать свои собственные, если хотите. Выберите политику, которая наилучшим образом подходит для ваших нужд.

OkHttpClient client = new OkHttpClient();
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
client.setCookieHandler(cookieManager);

OkHttp сохраняет файлы cookie, полученные от ответов, в CookieHandler и считывает их при отправке запросов. Он будет делать это для соответствия URI запроса / ответа.





okhttp