6.1 CookieManager

Как ты уже знаешь, http-сервер может вместе с ответом прислать cookie, и тебе нужно будет с ними работать. Или наоборот, http-сервер ждет, что клиент пришлет ему Cookie и тебе нужно добавить их в твой http-запрос. Конечно, можно сделать это прямо через заголовки (handlers), но HttpClient предлагает тебе более удобный механизм – класс CookieHandler. Получить его можно с помощью метода cookieHandler(). Пример:


HttpClient client = HttpClient.newBuilder( URI.create("https://javarush.com")).build();
CookieHandler handler = client.cookieHandler();

CookieHandler – это абстрактный класс, так что принято работать с его имплементацией CookieManager. У которого в свою очередь всего пара методов, через которые можно получить объект CookieStore. С ним можно в дальнейшем работать:


HttpClient client = HttpClient.newBuilder( URI.create("https://javarush.com")).build();
CookieHandler handler = client.cookieHandler();
CookieManager manager = (CookieManager) handler;
CookieStore store = manager.getCookieStore();

CookieStore – это интерфейс, у которого есть такие методы:

  • add()
  • get()
  • getCookies()
  • remove()
  • removeAll()

Я не буду проходить по ним подробно, мы уже детально разобрали HttpClient. Если вдруг вам очень понадобится, то документацию по классу CookieManager можно найти по ссылкам:

Class CookieManager

CookieManager Class in Java

Пользовательский CookieManager