РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1162 of 1163 menu

Класс CookieHandler

Класс CookieHandler является абстрактным классом, который предоставляет механизм управления cookies для HTTP-соединений. Он позволяет приложениям перехватывать и изменять cookies, которые передаются между клиентом и сервером. Класс не имеет публичных конструкторов, вместо этого используется статический метод getDefault для получения текущего обработчика и метод setDefault для установки собственной реализации. Абстрактные методы get и put отвечают соответственно за получение и сохранение cookies.

Синтаксис

public abstract class CookieHandler { public static CookieHandler getDefault() public static void setDefault(CookieHandler handler) public abstract Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) throws IOException public abstract void put(URI uri, Map<String, List<String>> responseHeaders) throws IOException }

Пример

Давайте получим текущий обработчик cookies по умолчанию и проверим, установлен ли он:

import java.net.CookieHandler; public class Main { public static void main(String[] args) { CookieHandler handler = CookieHandler.getDefault(); System.out.println(handler); } }

Результат выполнения кода:

null

Пример

Давайте установим собственный обработчик cookies с помощью анонимного класса и проверим его работу:

import java.net.CookieHandler; import java.net.URI; import java.io.IOException; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) throws IOException { CookieHandler handler = new CookieHandler() { @Override public Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) { System.out.println("Getting cookies for: " + uri); return Map.of(); } @Override public void put(URI uri, Map<String, List<String>> responseHeaders) { System.out.println("Putting cookies for: " + uri); } }; CookieHandler.setDefault(handler); CookieHandler current = CookieHandler.getDefault(); System.out.println(current != null); } }

Результат выполнения кода:

true

Пример

Давайте вызовем методы get и put установленного обработчика напрямую:

import java.net.CookieHandler; import java.net.URI; import java.io.IOException; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) throws IOException { CookieHandler handler = new CookieHandler() { @Override public Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) { return Map.of("Cookie", List.of("session=abcde")); } @Override public void put(URI uri, Map<String, List<String>> responseHeaders) { System.out.println("Saved cookies: " + responseHeaders); } }; CookieHandler.setDefault(handler); URI uri = URI.create("http://example.com"); Map<String, List<String>> cookies = handler.get(uri, Map.of()); System.out.println(cookies); handler.put(uri, Map.of("Set-Cookie", List.of("session=12345"))); } }

Результат выполнения кода:

{Cookie=[session=abcde]} Saved cookies: {Set-Cookie=[session=12345]}

Смотрите также

  • класс URI,
    который представляет унифицированный идентификатор ресурса
  • класс URL,
    который представляет унифицированный указатель ресурса
  • класс Proxy,
    который представляет настройки прокси-сервера
  • класс InetAddress,
    который представляет IP-адрес
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить