Класс CookieManager
public class CookieManager extends CookieHandler
CookieHandler, которая отделяет хранение файлов cookie от политики, связанной с принятием и отклонением файлов cookie. CookieManager инициализируется с CookieStore, который управляет хранением, и объектом CookiePolicy, который принимает решения о политике принятия/отклонения файлов cookie. Управление HTTP-файлами cookie в пакете java.net выглядит следующим образом:
use CookieHandler <------- HttpURLConnection ^ | impl | use CookieManager -------> CookiePolicy | use |--------> HttpCookie | ^ | | use | use | |--------> CookieStore ^ | impl | Internal in-memory implementation
- CookieHandler является основой управления файлами cookie. Пользователь может вызвать CookieHandler.setDefault, чтобы установить конкретную реализацию CookieHandler, которую нужно использовать.
- CookiePolicy.shouldAccept будет вызываться CookieManager.put, чтобы определить, следует ли принимать и добавлять файл cookie в хранилище файлов cookie. Пользователь может использовать любой из трех предопределенных CookiePolicy, а именно ACCEPT_ALL, ACCEPT_NONE и ACCEPT_ORIGINAL_SERVER, или пользователь может определить свою собственную реализацию CookiePolicy и указать CookieManager использовать её.
- CookieStore — это место, где хранятся все принятые HTTP-файлы cookie. Если при создании не указано иное, экземпляр CookieManager будет использовать внутреннюю реализацию в оперативной памяти. Или пользователь может реализовать собственную и указать CookieManager использовать её.
- В настоящее время CookieManager использует только CookieStore.add(URI, HttpCookie) и CookieStore.get(URI). Другие методы предназначены для полноты и могут потребоваться для более сложных реализаций CookieStore, например, NetscapeCookieStore.
Существуют различные способы, позволяющие пользователю подключить своё поведение управления HTTP-файлами cookie, например:
- Используйте 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.
- Since:
- 1.6
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CookieManager() |
Создает новый менеджер файлов cookie. |
CookieManager |
Создает новый менеджер файлов cookie с указанным хранилищем файлов cookie и политикой файлов cookie. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Map |
get |
Получает все соответствующие файлы cookie из кэша файлов cookie для указанного uri в заголовке запроса. |
CookieStore |
getCookieStore() |
Получение текущего хранилища файлов cookie. |
void |
put |
Устанавливает все соответствующие файлы cookie, например, поля заголовков ответа, имеющие имя Set-Cookie2, присутствующие в заголовках ответа, в кэш файлов cookie. |
void |
setCookiePolicy |
Устанавливает политику файлов cookie для этого менеджера файлов cookie. |
Методы, объявленные в классе java.net.CookieHandler
getDefault, setDefault
Подробное описание конструкторов
CookieManager
public CookieManager()
Этот конструктор создаст новый менеджер файлов cookie с хранилищем файлов cookie и политикой принятия по умолчанию. Эффект такой же, как CookieManager(null, null).
CookieManager
public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
- Параметры:
-
store- aCookieStoreдля использования менеджером файлов cookie. Еслиnull, менеджер файлов cookie будет использовать хранилище файлов cookie по умолчанию, что является реализацией CookieStore в оперативной памяти. -
cookiePolicy- экземплярCookiePolicyдля использования менеджером файлов cookie в качестве обратного вызова политики. Еслиnull, будет использоваться ACCEPT_ORIGINAL_SERVER.
Подробное описание методов
setCookiePolicy
public void setCookiePolicy(CookiePolicy cookiePolicy)
У экземпляра CookieManager по умолчанию политика файлов cookie ACCEPT_ORIGINAL_SERVER. Пользователи всегда могут вызвать этот метод, чтобы установить другую политику файлов cookie.
- Параметры:
-
cookiePolicy- политика файлов cookie. Может бытьnull, что не влияет на текущую политику файлов cookie.
getCookieStore
public CookieStore getCookieStore()
- Возвращает:
- текущее хранилище файлов cookie, используемое менеджером файлов cookie.
get
public Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders) throws IOException
CookieHandlerПереданный в качестве аргумента URI определяет предполагаемое использование файлов cookie. В частности, схема должна отражать, будут ли файлы cookie отправляться по протоколу http, https или использоваться в другом контексте, таком как javascript. Часть host должна отражать либо пункт назначения файлов cookie, либо их происхождение в случае javascript.
Реализация должна учитывать URI и атрибуты файлов cookie и настройки безопасности, чтобы определить, какие из них следует вернуть.
Реализаторы протокола HTTP должны убедиться, что этот метод вызывается после добавления всех заголовков запроса, связанных с выбором файлов cookie, и до отправки запроса.
- Определено в:
-
getв классеCookieHandler - Параметры:
-
uri- aURIпредставляющий предполагаемое использование файлов cookie -
requestHeaders- a Map из имён полей запроса к списку значений полей, представляющих текущие заголовки запроса - Возвращает:
- неизменяемая карта из заголовков управления состоянием, с именами полей "Cookie" или "Cookie2" до списка файлов cookie, содержащих информацию о состоянии
- Исключения:
-
IOException- если произошла ошибка ввода-вывода - См. также:
put
public void put(URI uri, Map<String,List<String>> responseHeaders) throws IOException
CookieHandler- Определено в:
-
putв классеCookieHandler - Параметры:
-
uri- aURIоткуда приходят файлы cookie -
responseHeaders- неизменяемая карта из имён полей к спискам значений полей, представляющих поля заголовков ответа - Исключения:
-
IOException- если произошла ошибка ввода-вывода - См. также:
© 1993, 2023, 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/21/docs/api/java.base/java/net/CookieManager.html