Класс QNetworkCookieJar
Класс QNetworkCookieJar реализует простой контейнер для объектов QNetworkCookie. Подробнее...
| Заголовок: | #include <QNetworkCookieJar> |
| qmake: | QT += network |
| С тех пор: | Qt 4.4 |
| Наследует: | QObject |
Открытые функции
| 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) |
- 31 открытых функций унаследованных от QObject
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованных от QObject
Защищенные функции
| QList<QNetworkCookie> | allCookies() const |
| void | setAllCookies(const QList<QNetworkCookie> &cookieList) |
| virtual bool | validateCookie(const QNetworkCookie &cookie, const QUrl &url) const |
- 9 защищенных функций унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство унаследованное от QObject
- 1 открытый слот унаследованный от QObject
- 2 сигналы унаследованные от QObject
Подробное описание
Класс QNetworkCookieJar реализует простой контейнер для объектов QNetworkCookie.
Куки — это небольшие фрагменты информации, которые используют бессостоятельные протоколы, такие как HTTP, для сохранения некоторой постоянной информации между запросами.
Куки устанавливаются удалённым сервером в ответ на запрос, и ожидается, что тот же куки будет отправлен обратно при последующих запросах.
Контейнер куки — это объект, который хранит все куки, установленные в предыдущих запросах. Веб-браузеры сохраняют свои контейнеры куки на диске для сохранения постоянных куки между вызовами приложения.
QNetworkCookieJar не реализует постоянное хранение: он хранит куки только в памяти. После удаления объекта QNetworkCookieJar все хранившиеся в нём куки также будут удалены. Если вы хотите сохранить куки, вы должны унаследовать от этого класса и реализовать сохранение на диск в вашем собственном формате хранения.
Этот класс реализует только базовые рекомендации по безопасности, указанные в спецификациях куки, и не реализует никакой политики принятия куки (он принимает все куки, установленные любыми запросами). Чтобы переопределить эти правила, вы должны переопределить виртуальные функции cookiesForUrl() и setCookiesFromUrl(). Они вызываются QNetworkReply и QNetworkAccessManager, когда они обнаруживают новые куки и когда им требуются куки.
См. также QNetworkCookie, QNetworkAccessManager, QNetworkReply, QNetworkRequest и QNetworkAccessManager::setCookieJar().
Документация по функциям-членам
[virtual] QNetworkCookieJar::QNetworkCookieJar(QObject *parent = nullptr)
Создаёт объект QNetworkCookieJar и устанавливает родительский объект в parent.
Контейнер куки инициализируется пустым.
[virtual] QNetworkCookieJar::~QNetworkCookieJar()
Уничтожает объект контейнера куки и удаляет все хранящиеся в нём куки. Куки не сохраняются на диск в стандартной реализации QNetworkCookieJar.
Если вам необходимо сохранить куки на диск, вы должны унаследовать от QNetworkCookieJar и сохранить куки на диск самостоятельно.
[protected] QList<QNetworkCookie> QNetworkCookieJar::allCookies() const
Возвращает все куки, хранящиеся в этом контейнере куки. Эта функция подходит для производных классов, чтобы сохранять куки на диск, а также реализовывать срок действия куки и другие политики.
См. также setAllCookies() и cookiesForUrl().
[virtual] QList<QNetworkCookie> QNetworkCookieJar::cookiesForUrl(const QUrl &url) const
Возвращает куки, которые будут добавлены при отправке запроса на url. Эта функция вызывается по умолчанию QNetworkAccessManager::createRequest(), которая добавляет куки, возвращённые этой функцией, в отправляемый запрос.
Если найдено более одного куки с одинаковым именем, но с различными путями, то возвращается куки с более длинным путём перед куки с более коротким путём. Другими словами, эта функция возвращает куки, отсортированные по убыванию длины пути.
Стандартный класс QNetworkCookieJar реализует только очень базовую политику безопасности (он проверяет, что домен и путь куки соответствуют ответу). Чтобы улучшить политику безопасности с помощью собственных алгоритмов, переопределите cookiesForUrl().
См. также setCookiesFromUrl() и QNetworkAccessManager::setCookieJar().
[virtual] bool QNetworkCookieJar::deleteCookie(const QNetworkCookie &cookie)
Удаляет из контейнера куки куки, идентификатор которого совпадает с cookie.
Возвращает true если куки был удалён, в противном случае — false.
Эта функция была добавлена в Qt 5.0.
См. также QNetworkCookie::hasSameIdentifier().
[virtual] bool QNetworkCookieJar::insertCookie(const QNetworkCookie &cookie)
Добавляет cookie в этот контейнер куки.
Возвращает true если cookie был добавлен, в противном случае — false.
Если в контейнере куки уже существует куки с тем же идентификатором, он будет перезаписан.
Эта функция была добавлена в Qt 5.0.
[protected] void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> &cookieList)
Устанавливает внутренний список куки, хранимых в этом контейнере куки, равным cookieList. Эта функция подходит для производных классов для реализации загрузки куки из постоянного хранения или собственных политик принятия куки путём переопределения setCookiesFromUrl().
См. также allCookies() и setCookiesFromUrl().
[virtual] bool QNetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
Добавляет куки из списка cookieList в этот контейнер куки. Перед добавлением куки нормализуются.
Возвращает true если один или несколько куки установлены для url, в противном случае — false.
Если куки уже существует в контейнере куки, он будет перезаписан куки из cookieList.
END_OF_DOCUMENT_MARKERПо умолчанию класс 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.
Эта функция была добавлена в 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.12/qnetworkcookiejar.html