Spec-Zone.ru › Qt 5.13

Класс 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 устанавливается удалённым сервером при ответе на запрос, и ожидается, что тот же cookie будет отправлен обратно при последующих запросах.

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

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

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

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

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

QNetworkCookieJar::QNetworkCookieJar(QObject *parent = nullptr)

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

Cookie-контейнер инициализируется пустым.

[virtual] QNetworkCookieJar::~QNetworkCookieJar()

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

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

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

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

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

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

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

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

Класс QNetworkCookieJar по умолчанию реализует только очень простую политику безопасности (убеждается, что домен и путь cookie соответствуют ответу). Чтобы расширить политику безопасности своими алгоритмами, переопределите 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 в этот cookie-контейнер.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

Эта функция была добавлена в 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.13/qnetworkcookiejar.html

Spec-Zone.ru

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