Spec-Zone.ru › OpenJDK 17

Класс CookieManager

java.lang.Object
java.net.CookieHandler
java.net.CookieManager
public class CookieManager extends CookieHandler
CookieManager предоставляет конкретную реализацию CookieHandler, которая отделяет хранение куки от политики, определяющей принятие и отказ от куки. CookieManager инициализируется с CookieStore, который управляет хранением, и объектом CookiePolicy, который принимает решения о принятии/отклонении куки.

Управление куки HTTP в пакете java.net выглядит следующим образом:


                  use
 CookieHandler <------- HttpURLConnection
       ^
       | impl
       |         use
 CookieManager -------> CookiePolicy
             |   use
             |--------> HttpCookie
             |              ^
             |              | use
             |   use        |
             |--------> CookieStore
                            ^
                            | impl
                            |
                  Internal in-memory implementation
 
  • CookieHandler находится в основе управления куки. Пользователь может вызвать CookieHandler.setDefault для установки конкретной реализации CookieHandler, которая будет использоваться.
  • CookiePolicy.shouldAccept будет вызываться CookieManager.put, чтобы определить, следует ли принимать и добавлять куки в хранилище куки. Пользователь может использовать любые три предварительно определённые CookiePolicy: ACCEPT_ALL, ACCEPT_NONE и ACCEPT_ORIGINAL_SERVER, или он может определить собственную реализацию CookiePolicy и указать CookieManager использовать её.
  • CookieStore — это место, где хранятся все принятые HTTP куки. Если при создании не указано иное, экземпляр CookieManager будет использовать внутреннюю реализацию в оперативной памяти. Либо пользователь может реализовать собственную и указать CookieManager использовать её.
  • В настоящее время CookieManager использует только CookieStore.add(URI, HttpCookie) и CookieStore.get(URI). Другие методы предназначены для полноты и могут потребоваться более сложной реализации CookieStore, например, NetscapeCookieStore.

Существует несколько способов, с помощью которых пользователь может подключить своё собственное поведение управления куки HTTP, например:

  • Используйте CookieHandler.setDefault для установки новой реализации CookieHandler
  • Пусть CookieManager будет реализацией по умолчанию CookieHandler, но реализуйте собственную CookieStore и CookiePolicy и укажите CookieManager использовать их:
           // this should be done at the beginning of an HTTP session
           CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));
         
  • Пусть CookieManager будет реализацией по умолчанию CookieHandler, но используйте настраиваемую CookiePolicy:
           // this should be done at the beginning of an HTTP session
           CookieHandler.setDefault(new CookieManager());
           // this can be done at any point of an HTTP session
           ((CookieManager)CookieHandler.getDefault()).setCookiePolicy(new MyCookiePolicy());
         

Реализация соответствует RFC 2965, раздел 3.3.

С момента:
1.6
См. также:
  • CookiePolicy

Краткое описание конструкторов

Конструктор Описание
CookieManager()
Создает новый менеджер куки.
CookieManager(CookieStore store, CookiePolicy cookiePolicy)
Создает новый менеджер куки с указанным хранилищем куки и политикой куки.

Краткое описание методов

Модификатор и тип Метод Описание
Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders)
Получает все применимые куки из кэша куки для указанного uri в заголовке запроса.
CookieStore getCookieStore()
Получить текущее хранилище куки.
void put(URI uri, Map<String,List<String>> responseHeaders)
Устанавливает все применимые куки, например, поля заголовков ответа, которые называются Set-Cookie2, присутствующие в заголовках ответа, в кэш куки.
void setCookiePolicy(CookiePolicy cookiePolicy)
Устанавливает политику куки для этого менеджера куки.

Методы, объявленные в классе java.net.CookieHandler

getDefault, setDefault

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

CookieManager

public CookieManager()
Создает новый менеджер куки.

Этот конструктор создаст новый менеджер куки с хранилищем куки по умолчанию и политикой принятия. Эффект такой же, как CookieManager(null, null).

CookieManager

public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
Создает новый менеджер куки с указанным хранилищем куки и политикой куки.
Параметры:
store - CookieStore, используемый менеджером куки. Если null, менеджер куки будет использовать хранилище куки по умолчанию, которое является реализацией CookieStore в оперативной памяти.
cookiePolicy - экземпляр CookiePolicy для использования менеджером куки в качестве обратного вызова политики. Если null, будет использоваться ACCEPT_ORIGINAL_SERVER.

Подробное описание методов

setCookiePolicy

public void setCookiePolicy(CookiePolicy cookiePolicy)
Устанавливает политику куки для этого менеджера куки.

У экземпляра CookieManager по умолчанию политика куки ACCEPT_ORIGINAL_SERVER. Пользователи всегда могут вызвать этот метод для установки другой политики куки.

Параметры:
cookiePolicy - политика куки. Может быть null, которая не влияет на текущую политику куки.

getCookieStore

public CookieStore getCookieStore()
Получить текущее хранилище куки.
Возвращает:
хранилище куки, в настоящее время используемое менеджером куки.

get

public Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders) throws IOException
Описание скопировано из класса: CookieHandler
Получает все применимые куки из кэша куки для указанного uri в заголовке запроса.

Переданный в качестве аргумента URI определяет предполагаемое использование куки. В частности, схема должна отражать, будут ли куки отправлены по http, https или использованы в другом контексте, например, javascript. Часть host должна отражать либо место назначения куки, либо их происхождение в случае javascript.

Реализация должна учитывать URI и атрибуты куки и настройки безопасности, чтобы определить, какие из них должны быть возвращены.

Реализации протокола HTTP должны убедиться, что этот метод вызывается после добавления всех заголовков запроса, связанных с выбором куки, и перед отправкой запроса.

Указано в:
get в классе CookieHandler
Параметры:
uri - URI, представляющий предполагаемое использование куки
requestHeaders - - Map из имён заголовков запроса к спискам значений полей, представляющих текущие заголовки запроса
Возвращает:
неизменяемая карта из заголовков управления состоянием, с именами полей "Cookie" или "Cookie2" до списка куки, содержащих информацию о состоянии
Исключение:
IOException - если произошла ошибка ввода-вывода
См. также:
  • CookieHandler.put(URI, Map)

put

public void put(URI uri, Map<String,List<String>> responseHeaders) throws IOException
Описание скопировано из класса: CookieHandler
Устанавливает все применимые куки, например, поля заголовков ответа, которые называются Set-Cookie2, присутствующие в заголовках ответа, в кэш куки.
Указано в:
put в классе CookieHandler
Параметры:
uri - URI, откуда берутся куки
responseHeaders - неизменяемая карта из имён полей к спискам значений полей, представляющих поля заголовков ответа
Исключение:
IOException - если произошла ошибка ввода-вывода
См. также:
  • CookieHandler.get(URI, Map)

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/net/CookieManager.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API