Класс QNetworkCookie
Класс QNetworkCookie хранит один сетевой cookie. Подробнее...
| Заголовок: | #include <QNetworkCookie> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
Типы Public
| Перечисление | RawForm { NameAndValueOnly, Full } |
Функции Public
| 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 |
Статические члены Public
| 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, как описано в начальном спецификации Netscape, которая в некоторой степени похожа на спецификацию RFC 2109, плюс "HttpOnly" extension. Более новая спецификация RFC 2965 (которая использует заголовок Set-Cookie2) не поддерживается.
См. также QNetworkCookieJar, QNetworkRequest и QNetworkReply.
Документация по типам членов
Перечисление QNetworkCookie::RawForm
Это перечисление используется с функцией toRawForm() для указания формы cookie, которая должна быть возвращена.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkCookie::NameAndValueOnly |
0 |
делает toRawForm() возвращает только часть "NAME=VALUE" cookie, как подходит для отправки обратно серверу в заголовке "Cookie:" запроса клиента. Несколько cookie разделяются точкой с запятой в поле заголовка "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. Это соответствует полю "domain" строки 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/qt-5.12/qnetworkcookie.html