Класс QNetworkCookie
Класс QNetworkCookie хранит один сетевой cookie. Подробнее...
| Заголовок: | #include <QNetworkCookie> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
Этот класс был представлен в Qt 4.4.
Типы публичного доступа
| Перечисление | RawForm { NameAndValueOnly, Full } |
Функции публичного доступа
| QNetworkCookie(const QNetworkCookie &other) | |
| QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray()) | |
| QNetworkCookie & | operator=(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 |
| bool | operator==(const QNetworkCookie &other) const |
Статические члены публичного доступа
| QList<QNetworkCookie> | parseCookies(const QByteArray &cookieString) |
Подробное описание
Куки — небольшие фрагменты информации, которые используют бессостоятельные протоколы, такие как HTTP, для сохранения некоторых постоянных данных между запросами.
Cookie устанавливается удалённым сервером при ответе на запрос, и ожидается, что тот же cookie будет отправлен обратно при отправке дальнейших запросов.
QNetworkCookie хранит один такой cookie, полученный из сети. Cookie имеет имя и значение, но эти значения не имеют смысла для приложения (то есть информация, хранящаяся в них, не имеет значения для приложения). Cookie связан с именем пути и доменом, которые указывают, когда cookie должен быть отправлен обратно на сервер.
Cookie также может иметь дату истечения срока действия, указывающую его срок действия. Если дата истечения срока действия отсутствует, cookie считается «cookie сессии» и должен быть удалён при выходе приложения (или по окончании его представления о сессии).
QNetworkCookie предоставляет возможность разбора cookie из формата заголовка HTTP с помощью функции QNetworkCookie::parseCookies(). Однако при получении в QNetworkReply cookie уже был разобран.
Этот класс реализует cookies, как описано в первоначальной спецификации 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» сервера. |
Обратите внимание, что только полная форма cookie может быть обработана обратно в исходное содержимое.
См. также toRawForm() и parseCookies().
Документация по функциям-членам
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
Создаёт новый объект QNetworkCookie путём копирования содержимого other.
QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
Создаёт новый объект QNetworkCookie, инициализируя имя cookie значением name, а его значение — value.
Cookie действителен только если у него есть имя. Однако значение является незначащим для приложения и пустое значение может иметь значение для удалённого сервера.
QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)
Копирует содержимое объекта QNetworkCookie other в этот объект.
QNetworkCookie::~QNetworkCookie()
Уничтожает этот объект QNetworkCookie.
QString QNetworkCookie::domain() const
Возвращает домен, к которому связан cookie. Это соответствует полю «домен» строки cookie.
Обратите внимание, что домен здесь может начинаться с точки, что не является допустимым именем хоста. Однако это означает, что этот cookie соответствует всем именам хостов, оканчивающимся на этот домен.
См. также setDomain().
QDateTime QNetworkCookie::expirationDate() const
Возвращает дату истечения срока действия этого cookie. Если этот cookie является cookie сессии, возвращаемое значение QDateTime будет недействительным. Если дата находится в прошлом, этот cookie уже истек и больше не должен отправляться на удаленный сервер.
Дата истечения срока действия соответствует параметрам записи «expires» в строке cookie.
См. также isSessionCookie() и setExpirationDate().
bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const
Возвращает true если у этого cookie такая же кортеж идентификатора, как у other. Кортеж идентификатора состоит из имени, домена и пути.
См. также operator==().
bool QNetworkCookie::isHttpOnly() const
Возвращает true если для этого cookie включён флаг «HttpOnly».
Cookie с флагом «HttpOnly» устанавливается и извлекается только сетевыми запросами и ответами; т.е., протоколом HTTP. Он недоступен из скриптов, выполняемых в браузерах.
Эта функция была добавлена в Qt 4.5.
См. также isSecure().
bool QNetworkCookie::isSecure() const
Возвращает true если параметр «secure» был указан в строке cookie, в противном случае — false.
Secure cookie может содержать конфиденциальную информацию и не должен повторно отправляться по незащищенным каналам.
См. также setSecure().
bool QNetworkCookie::isSessionCookie() const
Возвращает true если этот cookie является cookie сессии. Cookie сессии — это cookie без даты истечения, что означает, что он должен быть удалён, когда сессия приложения завершена (обычно при выходе из приложения).
См. также expirationDate() и setExpirationDate().
QByteArray QNetworkCookie::name() const
Возвращает имя этого cookie. Единственным обязательным полем cookie является его имя, без которого он считается недействительным.
См. также setName() и value().
void QNetworkCookie::normalize(const QUrl &url)
Эта функция нормализует путь и домен cookie, если они были ранее пусты. Параметр url используется для определения правильного домена и пути.
Эта функция была добавлена в Qt 5.0.
[static] QList<QNetworkCookie> QNetworkCookie::parseCookies(const QByteArray &cookieString)
Парсит строку cookie cookieString, полученную из ответа сервера в заголовке «Set-Cookie:». Если произошла ошибка парсинга, функция возвращает пустой список.
Так как заголовок HTTP может задавать более одного cookie одновременно, эта функция возвращает QList<QNetworkCookie>, по одному для каждого проанализированного cookie.
См. также toRawForm().
QString QNetworkCookie::path() const
Возвращает путь, связанный с этим cookie. Это соответствует полю «path» в строке cookie.
См. также setPath().
void QNetworkCookie::setDomain(const QString &domain)
Устанавливает домен, связанный с этим cookie, равным domain.
См. также domain().
void QNetworkCookie::setExpirationDate(const QDateTime &date)
Устанавливает дату истечения срока действия этого cookie равной date. Установка недействительной даты истечения срока действия для этого cookie означает, что это cookie сессии.
См. также isSessionCookie() и expirationDate().
void QNetworkCookie::setHttpOnly(bool enable)
Устанавливает флаг «HttpOnly» этого cookie равным enable.
Эта функция была добавлена в Qt 4.5.
См. также isHttpOnly().
void QNetworkCookie::setName(const QByteArray &cookieName)
Устанавливает имя этого cookie равным cookieName. Обратите внимание, что установка имени cookie в пустое значение QByteArray сделает cookie недействительным.
void QNetworkCookie::setPath(const QString &path)
Устанавливает путь, связанный с этим cookie, равным path.
См. также path().
void QNetworkCookie::setSecure(bool enable)
Устанавливает флаг безопасности этого cookie равным enable.
Secure cookie может содержать конфиденциальную информацию и не должен повторно отправляться по незащищенным каналам.
См. также isSecure().
void QNetworkCookie::setValue(const QByteArray &value)
Устанавливает значение этого cookie равным value.
void QNetworkCookie::swap(QNetworkCookie &other)
Меняет местами этот cookie с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const
Возвращает сырой вид этого QNetworkCookie. Возвращаемый QByteArray подходит для HTTP-заголовка, как в ответ сервера (заголовок Set-Cookie), так и в запросе клиента (заголовок Cookie). Вы можете выбрать один из двух форматов, используя form.
См. также parseCookies().
QByteArray QNetworkCookie::value() const
Возвращает значение этого cookie, как указано в строке cookie. Обратите внимание, что cookie всё ещё действителен, если его значение пустое.
Пары имя-значение cookie считаются незначащими для приложения: их значения не имеют смысла.
См. также setValue() и name().
bool QNetworkCookie::operator!=(const QNetworkCookie &other) const
Возвращает true если этот cookie не равен other.
См. также operator==().
bool QNetworkCookie::operator==(const QNetworkCookie &other) const
Возвращает true если этот cookie равен other. Эта функция возвращает true только если все поля cookie одинаковые.
Однако в некоторых контекстах два cookie с одинаковым именем могут считаться равными.
Эта функция была добавлена в 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.13/qnetworkcookie.html