Класс QNetworkCookie
Класс QNetworkCookie хранит один сетевой cookie. Подробнее...
| Заголовок: | #include <QNetworkCookie> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
Типы
| перечисление | RawForm { NameAndValueOnly, Full } |
Открытые функции
| QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray()) | |
| QNetworkCookie(const QNetworkCookie &other) | |
| ~QNetworkCookie() | |
| QString | domain() const |
| QDateTime | expirationDate() const |
| bool | hasSameIdentifier(const QNetworkCookie &other) const |
| bool | isHttpOnly() const |
| bool | isSecure() const |
| bool | isSessionCookie() const |
| QByteArray | name() const |
| void | normalize(const QUrl &url) |
| QString | path() const |
| void | setDomain(const QString &domain) |
| void | setExpirationDate(const QDateTime &date) |
| void | setHttpOnly(bool enable) |
| void | setName(const QByteArray &cookieName) |
| void | setPath(const QString &path) |
| void | setSecure(bool enable) |
| void | setValue(const QByteArray &value) |
| void | swap(QNetworkCookie &other) |
| QByteArray | toRawForm(QNetworkCookie::RawForm form = Full) const |
| QByteArray | value() const |
| bool | operator!=(const QNetworkCookie &other) const |
| QNetworkCookie & | operator=(QNetworkCookie &&other) |
| QNetworkCookie & | operator=(const QNetworkCookie &other) |
| bool | operator==(const QNetworkCookie &other) const |
Статические открытые члены
| QList<QNetworkCookie> | parseCookies(const QByteArray &cookieString) |
Подробное описание
Класс QNetworkCookie хранит один сетевой cookie.
Cookies — это небольшие фрагменты информации, которые используются такими бессостоятельными протоколами, как HTTP, для сохранения некоторой постоянной информации между запросами.
Cookie устанавливается удаленным сервером в ответ на запрос, и ожидается, что тот же cookie будет отправлен обратно при последующих запросах.
QNetworkCookie хранит один такой cookie, полученный из сети. Cookie имеет имя и значение, но они являются неявными для приложения (то есть информация, хранящаяся в них, не имеет значения для приложения). Cookie также имеет связанное имя пути и домен, которые указывают, когда cookie должен быть отправлен обратно на сервер.
Cookie также может иметь дату истечения срока действия, указывающую на его действительность. Если дата истечения срока действия отсутствует, cookie считается «cookie сеанса» и должен быть удален при выходе приложения (или когда его представление сеанса закончилось).
QNetworkCookie предоставляет способ парсинга cookie из формата заголовка HTTP с помощью функции QNetworkCookie::parseCookies(). Однако при получении в QNetworkReply cookie уже распарсен.
Этот класс реализует cookie в соответствии с начальным спецификацией cookie Netscape, которая несколько похожа на спецификацию RFC 2109, плюс "HttpOnly" расширение. Более новая спецификация RFC 2965 (которая использует заголовок Set-Cookie2) не поддерживается.
См. также QNetworkCookieJar, QNetworkRequest и QNetworkReply.
Документация по типам членов
перечисление QNetworkCookie::RawForm
Это перечисление используется с функцией toRawForm(), чтобы указать, какой вид cookie требуется вернуть.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkCookie::NameAndValueOnly |
0 |
заставляет toRawForm() возвращать только часть "NAME=VALUE" cookie, что подходит для отправки обратно на сервер в заголовке "Cookie:" запроса клиента. Несколько cookies разделяются точкой с запятой в поле заголовка "Cookie:". |
QNetworkCookie::Full |
1 |
заставляет toRawForm() возвращать полное содержимое cookie, что подходит для отправки клиенту в заголовке "Set-Cookie:" сервера. |
Обратите внимание, что только форма Full cookie может быть повторно распарсена в исходное содержимое.
См. также toRawForm() и parseCookies().
Документация по функциям-членам
QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
Создает новый объект QNetworkCookie, инициализируя имя cookie значением name, а его значение значением value.
Cookie является валидным только при наличии имени. Однако значение неявное для приложения, и пустое значение может иметь значение для удалённого сервера.
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
Создает новый объект QNetworkCookie путем копирования содержимого other.
QNetworkCookie::~QNetworkCookie()
Уничтожает объект QNetworkCookie.
QString QNetworkCookie::domain() const
Возвращает домен, связанный с этим cookie. Соответствует полю «домен» строки cookie.
Обратите внимание, что домен здесь может начинаться с точки, что не является допустимым именем хоста. Однако это означает, что этот cookie соответствует всем именам хостов, заканчивающимся этим доменом.
См. также setDomain().
QDateTime QNetworkCookie::expirationDate() const
Возвращает дату истечения срока действия данного куки. Если этот куки является куки сессии, возвращаемое значение QDateTime не будет действительным. Если дата находится в прошлом, этот куки уже истек и не должен отправляться обратно на удаленный сервер.
Дата истечения срока действия соответствует параметрам записи «expires» в строке куки.
См. также isSessionCookie() и setExpirationDate().
bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const
Возвращает true , если этот куки имеет ту же кортеж идентификатора, что и other. Кортеж идентификатора состоит из имени, домена и пути.
См. также operator==().
bool QNetworkCookie::isHttpOnly() const
Возвращает true , если для этого куки включен флаг «HttpOnly».
Куки, для которого включен «HttpOnly», устанавливается и извлекается только сетевыми запросами и ответами; т.е., протоколом HTTP. Он недоступен для скриптов, выполняемых в браузерах.
Эта функция была добавлена в Qt 4.5.
См. также isSecure().
bool QNetworkCookie::isSecure() const
Возвращает true , если опция «secure» была указана в строке куки, в противном случае false.
Защищенные куки могут содержать конфиденциальную информацию и не должны повторно отправляться по незащищенным соединениям.
См. также setSecure().
bool QNetworkCookie::isSessionCookie() const
Возвращает true , если этот куки является куки сессии. Куки сессии — это куки без даты истечения срока действия, что означает, что он должен быть удален, когда истекает сессия приложения (обычно при завершении работы приложения).
См. также expirationDate() и setExpirationDate().
QByteArray QNetworkCookie::name() const
Возвращает имя этого куки. Единственным обязательным полем куки является его имя, без которого он считается недействительным.
См. также setName() и value().
void QNetworkCookie::normalize(const QUrl &url)
Эта функция нормализует путь и домен куки, если они были пустыми ранее. Параметр url используется для определения правильного домена и пути.
Эта функция была добавлена в Qt 5.0.
[static] QList<QNetworkCookie> QNetworkCookie::parseCookies(const QByteArray &cookieString)
Парсит строку куки cookieString, полученную из ответа сервера в заголовке «Set-Cookie:». При ошибке парсинга функция возвращает пустой список.
Поскольку заголовок HTTP может устанавливать более одного куки одновременно, эта функция возвращает QList<QNetworkCookie>, по одному для каждого куки, которое было обработано.
См. также toRawForm().
QString QNetworkCookie::path() const
Возвращает путь, связанный с этим куки. Соответствует полю «path» строки куки.
См. также setPath().
void QNetworkCookie::setDomain(const QString &domain)
Устанавливает домен, связанный с этим куки, в domain.
См. также domain().
void QNetworkCookie::setExpirationDate(const QDateTime &date)
Устанавливает дату истечения срока действия этого куки на date. Установка недействительной даты истечения срока действия для этого куки означает, что это куки сессии.
См. также isSessionCookie() и expirationDate().
void QNetworkCookie::setHttpOnly(bool enable)
Устанавливает флаг «HttpOnly» этого куки в enable.
Эта функция была добавлена в Qt 4.5.
См. также isHttpOnly().
void QNetworkCookie::setName(const QByteArray &cookieName)
Устанавливает имя этого куки в cookieName. Обратите внимание, что установка имени куки в пустой QByteArray сделает этот куки недействительным.
void QNetworkCookie::setPath(const QString &path)
Устанавливает путь, связанный с этим куки, в path.
См. также path().
void QNetworkCookie::setSecure(bool enable)
Устанавливает флаг «secure» этого куки в enable.
Защищенные куки могут содержать конфиденциальную информацию и не должны повторно отправляться по незащищенным соединениям.
См. также isSecure().
void QNetworkCookie::setValue(const QByteArray &value)
Устанавливает значение этого куки в value.
void QNetworkCookie::swap(QNetworkCookie &other)
Меняет местами этот куки с other. Эта функция очень быстрая и никогда не завершается ошибкой.
Эта функция была добавлена в Qt 5.0.
QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const
Возвращает исходную форму этого QNetworkCookie. Возвращаемый QByteArray подходит для заголовка HTTP, как в ответе сервера (заголовок Set-Cookie), так и в запросе клиента (заголовок Cookie). Вы можете выбрать один из двух форматов, используя form.
См. также parseCookies().
QByteArray QNetworkCookie::value() const
Возвращает значение этого куки, как указано в строке куки. Обратите внимание, что куки все еще действителен, если его значение пустое.
Пара пары имя-значение куки считаются непрозрачными для приложения: их значения ничего не означают.
См. также setValue() и name().
bool QNetworkCookie::operator!=(const QNetworkCookie &other) const
Возвращает true , если этот куки не равен other.
См. также operator==().
QNetworkCookie &QNetworkCookie::operator=(QNetworkCookie &&other)
Оператор присваивания перемещения.
QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)
Копирует содержимое объекта QNetworkCookie other в этот объект.
bool QNetworkCookie::operator==(const QNetworkCookie &other) const
Возвращает true , если этот куки равен other. Эта функция возвращает true только если все поля куки одинаковы.
Однако в некоторых контекстах два куки с одинаковым именем могут считаться равными.
Эта функция была добавлена в Qt 5.0.
См. также operator!=() и hasSameIdentifier().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qnetworkcookie.html