Класс CookieManager
- java.lang.Object
-
- java.net.CookieHandler
-
- java.net.CookieManager
public class CookieManager extends CookieHandler
CookieManager предоставляет конкретную реализацию CookieHandler, которая отделяет хранение файлов cookie от политики, регулирующей принятие и отклонение файлов cookie. CookieManager инициализируется с CookieStore, который управляет хранением, и объектом CookiePolicy, который принимает решения о политике принятия/отклонения файлов cookie.
Управление файлами cookie HTTP в пакете java.net выглядит следующим образом:
use CookieHandler <------- HttpURLConnection ^ | impl | use CookieManager -------> CookiePolicy | use |--------> HttpCookie | ^ | | use | use | |--------> CookieStore ^ | impl | Internal in-memory implementation
- CookieHandler является основой управления файлами cookie. Пользователь может вызвать CookieHandler.setDefault для установки конкретной реализации CookieHanlder, которая будет использоваться.
- 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, например, NetscapeCookieSotre.
Существуют различные способы, которыми пользователь может подключить своё поведение управления 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
- См. также:
CookiePolicy
Конструкторы
| Конструктор и описание |
|---|
CookieManager() Создать новый менеджер файлов cookie. |
CookieManager(CookieStore store,
CookiePolicy cookiePolicy) Создать новый менеджер файлов cookie со специфицированным хранилищем файлов cookie и политикой файлов cookie. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Map<String,List<String>> |
get(URI uri,
Map<String,List<String>> requestHeaders) Получить все применимые файлы cookie из кэша файлов cookie для указанного uri в заголовке запроса. |
CookieStore |
getCookieStore() Получить текущее хранилище файлов cookie. |
void |
put(URI uri,
Map<String,List<String>> responseHeaders) Установить все применимые файлы cookie, например, поля заголовка ответа, которые называются Set-Cookie2, присутствующие в заголовках ответа, в кэш файлов cookie. |
void |
setCookiePolicy(CookiePolicy cookiePolicy) Установить политику файлов cookie для данного менеджера файлов cookie. |
Наследованные методы из класса java.net.CookieHandler
getDefault, setDefault
Наследованные методы из класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
CookieManager
public CookieManager()
Создать новый менеджер файлов cookie.
Этот конструктор создаст новый менеджер файлов cookie с хранилищем файлов cookie по умолчанию и политикой принятия. Эффект такой же, как CookieManager(null, null).
CookieManager
public CookieManager(CookieStore store,
CookiePolicy cookiePolicy)
Создать новый менеджер файлов cookie со специфицированным хранилищем файлов cookie и политикой файлов cookie.
- Параметры:
-
store—CookieStore, используемый менеджером файлов cookie. Еслиnull, менеджер файлов cookie будет использовать хранилище файлов cookie по умолчанию, которое является реализацией CookieStore в оперативной памяти. -
cookiePolicy— экземплярCookiePolicy, используемый менеджером файлов cookie в качестве обратного вызова политики. Еслиnull, будет использоваться ACCEPT_ORIGINAL_SERVER.
Методы
setCookiePolicy
public void setCookiePolicy(CookiePolicy cookiePolicy)
Установить политику файлов cookie для данного менеджера файлов cookie.
Экземпляр CookieManager по умолчанию имеет политику файлов cookie ACCEPT_ORIGINAL_SERVER. Пользователи всегда могут вызвать этот метод, чтобы установить другую политику файлов cookie.
- Параметры:
-
cookiePolicy— политика файлов cookie. Может бытьnull, что не оказывает влияния на текущую политику файлов cookie.
getCookieStore
public CookieStore getCookieStore()
Получить текущее хранилище файлов cookie.
- Возвращает:
- хранилище файлов cookie, которое в данный момент используется менеджером файлов cookie.
get
public Map<String,List<String>> get(URI uri,
Map<String,List<String>> requestHeaders)
throws IOException
Описание скопировано из класса: CookieHandler
Получить все применимые файлы cookie из кэша файлов cookie для указанного uri в заголовке запроса.
Переданный в качестве аргумента URI указывает предполагаемое использование файлов cookie. В частности, схема должна отражать, будут ли файлы cookie отправлены по протоколу http, https или будут использоваться в другом контексте, например, javascript. Часть host должна отражать либо пункт назначения файлов cookie, либо их происхождение в случае javascript.
Реализация должна учитывать URI и атрибуты файлов cookie и настройки безопасности, чтобы определить, какие из них должны быть возвращены.
Реализаторы протокола HTTP должны убедиться, что этот метод вызывается после добавления всех заголовков запроса, связанных с выбором файлов cookie, и до отправки запроса.
- Указано в:
-
getв классеCookieHandler - Параметры:
-
uri—URI, представляющий предполагаемое использование файлов cookie -
requestHeaders— карта из имён полей заголовка запроса к спискам значений полей, представляющих текущие заголовки запроса - Возвращает:
- неизменяемая карта из заголовков управления состоянием, с именами полей "Cookie" или "Cookie2" до списка файлов cookie, содержащих информацию о состоянии
- Выбрасывает:
-
IOException— если возникает ошибка ввода/вывода - См. также:
CookieHandler.put(URI, Map)
put
public void put(URI uri,
Map<String,List<String>> responseHeaders)
throws IOException
Описание скопировано из класса: CookieHandler
Устанавливает все применимые файлы cookie, например, поля заголовка ответа, которые называются Set-Cookie2, присутствующие в заголовках ответа, в кэш файлов cookie.
- Указано в:
-
putв классеCookieHandler - Параметры:
-
uri—URI, откуда поступают файлы cookie -
responseHeaders— неизменяемая карта из имён полей к спискам значений полей, представляющих поля заголовка ответа - Выбрасывает:
-
IOException— если возникает ошибка ввода/вывода - См. также:
CookieHandler.get(URI, Map)
© 1993, 2020, 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.