Spec-Zone.ru › Qt 5.15

Класс QNetworkCookieJar

Класс QNetworkCookieJar реализует простой контейнер объектов QNetworkCookie. Подробнее...

Заголовок: #include <QNetworkCookieJar>
qmake: QT += network
С тех пор: Qt 4.4
Наследует: QObject

Этот класс был представлен в Qt 4.4.

  • Список всех членов, включая унаследованные

Открытые функции

QNetworkCookieJar(QObject *parent = nullptr)
virtual ~QNetworkCookieJar()
virtual QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const
virtual bool deleteCookie(const QNetworkCookie &cookie)
virtual bool insertCookie(const QNetworkCookie &cookie)
virtual bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
virtual bool updateCookie(const QNetworkCookie &cookie)

Защищенные функции

QList<QNetworkCookie> allCookies() const
void setAllCookies(const QList<QNetworkCookie> &cookieList)
virtual bool validateCookie(const QNetworkCookie &cookie, const QUrl &url) const

Подробное описание

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

Cookie устанавливается удаленным сервером в ответ на запрос, и ожидается, что он будет отправлен обратно при последующих запросах.

Контейнер cookies — это объект, который хранит все cookies, установленные в предыдущих запросах. Веб-браузеры сохраняют свои контейнеры cookies на диске, чтобы сохранять постоянные cookies между вызовами приложения.

QNetworkCookieJar не реализует постоянное хранение: он только сохраняет cookies в памяти. После удаления объекта QNetworkCookieJar все сохранённые в нём cookies будут удалены. Если вы хотите сохранить cookies, вы должны унаследовать от этого класса и реализовать сохранение на диск в вашем собственном формате хранения.

Этот класс реализует только базовые рекомендации по безопасности, установленные спецификациями cookie, и не реализует никакой политики принятия cookies (он принимает все cookies, установленные любыми запросами). Чтобы переопределить эти правила, необходимо переопределить виртуальные функции cookiesForUrl() и setCookiesFromUrl(). Они вызываются QNetworkReply и QNetworkAccessManager при обнаружении новых cookies и при необходимости cookies.

См. также QNetworkCookie, QNetworkAccessManager, QNetworkReply, QNetworkRequest и QNetworkAccessManager::setCookieJar().

Документация по функциям-членам

QNetworkCookieJar::QNetworkCookieJar(QObject *parent = nullptr)

Создаёт объект QNetworkCookieJar и устанавливает родительский объект в parent.

Контейнер cookies инициализируется как пустой.

[virtual] QNetworkCookieJar::~QNetworkCookieJar()

Удаляет этот объект контейнера cookies и удаляет все хранящиеся в нём cookies. Cookies не сохраняются на диск в реализации QNetworkCookieJar по умолчанию.

Если необходимо сохранить cookies на диск, необходимо унаследовать от QNetworkCookieJar и сохранить cookies на диск самостоятельно.

[protected] QList<QNetworkCookie> QNetworkCookieJar::allCookies() const

Возвращает все cookies, сохранённые в этом контейнере cookies. Эта функция подходит для производных классов для сохранения cookies на диск, а также для реализации истечения срока действия cookie и других политик.

См. также setAllCookies() и cookiesForUrl().

[virtual] QList<QNetworkCookie> QNetworkCookieJar::cookiesForUrl(const QUrl &url) const

Возвращает cookies, которые должны быть добавлены при отправке запроса на url. Эта функция вызывается по умолчанию QNetworkAccessManager::createRequest(), которая добавляет возвращаемые этой функцией cookies в отправляемый запрос.

Если найдено более одного cookie с одинаковым именем, но с разными путями, возвращается cookie с более длинным путём перед cookie с более коротким путём. Другими словами, эта функция возвращает cookies, отсортированные по убыванию длины пути.

Класс QNetworkCookieJar по умолчанию реализует только очень простую политику безопасности (он гарантирует, что домен и путь cookies соответствуют ответу). Чтобы улучшить политику безопасности с помощью собственных алгоритмов, переопределите cookiesForUrl().

См. также setCookiesFromUrl() и QNetworkAccessManager::setCookieJar().

[virtual] bool QNetworkCookieJar::deleteCookie(const QNetworkCookie &cookie)

Удаляет из контейнера cookie cookie, имеющую такой же идентификатор, как cookie.

Возвращает true если cookie был удалён, в противном случае — false.

Эта функция была введена в Qt 5.0.

См. также QNetworkCookie::hasSameIdentifier().

[virtual] bool QNetworkCookieJar::insertCookie(const QNetworkCookie &cookie)

Добавляет cookie в этот контейнер cookies.

Возвращает true если cookie был добавлен, в противном случае — false.

Если cookie с таким же идентификатором уже существует в контейнере cookies, он будет перезаписан.

Эта функция была введена в Qt 5.0.

[protected] void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> &cookieList)

Устанавливает внутренний список cookies, хранимых в этом контейнере cookies, в cookieList. Эта функция подходит для производных классов для реализации загрузки cookies из постоянного хранилища или собственных политик принятия cookies путём переопределения setCookiesFromUrl().

См. также allCookies() и setCookiesFromUrl().

[virtual] bool QNetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)

Добавляет cookies из списка cookieList в этот контейнер cookies. Перед вставкой cookies нормализуются.

Возвращает true если один или несколько cookies установлены для url, в противном случае — false.

Если cookie уже существует в контейнере cookies, он будет перезаписан теми, что в cookieList.

Класс QNetworkCookieJar по умолчанию реализует только очень простую политику безопасности (он гарантирует, что домен и путь cookies соответствуют ответу). Чтобы улучшить политику безопасности с помощью собственных алгоритмов, переопределите setCookiesFromUrl().

Кроме того, QNetworkCookieJar не имеет максимального размера контейнера cookies. Переопределите эту функцию, чтобы удалять более старые cookies для создания места для новых.

См. также cookiesForUrl(), QNetworkAccessManager::setCookieJar() и QNetworkCookie::normalize().

[virtual] bool QNetworkCookieJar::updateCookie(const QNetworkCookie &cookie)

Если cookie с таким же идентификатором, как cookie, существует в этом контейнере cookies, он будет обновлён. Эта функция использует insertCookie().

Возвращает true если cookie был обновлён, в противном случае — false, если в контейнере нет cookie, соответствующей идентификатору cookie.

Эта функция была введена в Qt 5.0.

См. также QNetworkCookie::hasSameIdentifier().

[virtual protected] bool QNetworkCookieJar::validateCookie(const QNetworkCookie &cookie, const QUrl &url) const

Возвращает true, если домен и путь cookie допустимы, в противном случае возвращает false. Параметр url используется для определения, разрешен ли домен, указанный в cookie.

Эта функция была добавлена в Qt 5.0.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qnetworkcookiejar.html

Spec-Zone.ru

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