Класс 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) |
- 34 открытых функций, унаследованных от 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
- 1 открытая переменная, унаследованная от QObject
- 10 статических открытых членов, унаследованных от QObject
- 2 защищённые переменные, унаследованные от QObject
Подробное описание
Класс QNetworkCookieJar реализует простой контейнер для объектов QNetworkCookie.
Куки — небольшие фрагменты информации, которые используются в бессостоятельных протоколах, таких как HTTP, для сохранения некоторой постоянной информации между запросами.
Куки устанавливаются удаленным сервером в ответ на запрос, и ожидается, что тот же куки будет отправлен обратно при последующих запросах.
Контейнер куки хранит все куки, установленные в предыдущих запросах. Веб-браузеры сохраняют контейнеры куки на диске, чтобы сохранить постоянные куки между запусками приложения.
QNetworkCookieJar не реализует постоянное хранение: он сохраняет куки только в памяти. После удаления объекта QNetworkCookieJar все хранившиеся в нём куки будут удалены. Если вам нужно сохранить куки, вы должны наследовать от этого класса и реализовать сохранение на диск в свой собственном формате хранения.
Этот класс реализует только основные рекомендации по безопасности, описанные в спецификациях куки, и не реализует политику принятия куки (он принимает все куки, установленные любыми запросами). Чтобы переопределить эти правила, вы должны переопределить виртуальные функции cookiesForUrl() и setCookiesFromUrl(). Они вызываются QNetworkReply и QNetworkAccessManager, когда они обнаруживают новые куки и когда им требуются куки.
См. также QNetworkCookie, QNetworkAccessManager, QNetworkReply, QNetworkRequest и QNetworkAccessManager::setCookieJar.
Документация по функциям-членам
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.
Класс QNetworkCookieJar по умолчанию реализует только очень простую политику безопасности (он проверяет, что домен и путь куки соответствуют ответу). Чтобы улучшить политику безопасности собственными алгоритмами, переопределите 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/archives/qt-5.11/qnetworkcookiejar.html