Класс QNetworkRequest
Класс QNetworkRequest хранит запрос, который должен быть отправлен с помощью QNetworkAccessManager. Подробнее...
| Заголовок: | #include <QNetworkRequest> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
Открытые типы
| Перечисление | Attribute { HttpStatusCodeAttribute, HttpReasonPhraseAttribute, RedirectionTargetAttribute, ConnectionEncryptedAttribute, ..., UserMax } |
| Перечисление | CacheLoadControl { AlwaysNetwork, PreferNetwork, PreferCache, AlwaysCache } |
| Перечисление | KnownHeaders { ContentDispositionHeader, ContentTypeHeader, ContentLengthHeader, LocationHeader, ..., ServerHeader } |
| Перечисление | LoadControl { Automatic, Manual } |
| Перечисление | Priority { HighPriority, NormalPriority, LowPriority } |
| Перечисление | RedirectPolicy { ManualRedirectPolicy, NoLessSafeRedirectPolicy, SameOriginRedirectPolicy, UserVerifiedRedirectPolicy } |
Открытые функции
| QNetworkRequest(const QUrl &url = QUrl()) | |
| QNetworkRequest(const QNetworkRequest &other) | |
| ~QNetworkRequest() | |
| QVariant | attribute(Attribute code, const QVariant &defaultValue = QVariant()) const |
| bool | hasRawHeader(const QByteArray &headerName) const |
| QVariant | header(KnownHeaders header) const |
| int | maximumRedirectsAllowed() const |
| QObject * | originatingObject() const |
| Priority | priority() const |
| QByteArray | rawHeader(const QByteArray &headerName) const |
| QList<QByteArray> | rawHeaderList() const |
| void | setAttribute(Attribute code, const QVariant &value) |
| void | setHeader(KnownHeaders header, const QVariant &value) |
| void | setMaximumRedirectsAllowed(int maxRedirectsAllowed) |
| void | setOriginatingObject(QObject *object) |
| void | setPriority(Priority priority) |
| void | setRawHeader(const QByteArray &headerName, const QByteArray &headerValue) |
| void | setSslConfiguration(const QSslConfiguration &config) |
| void | setUrl(const QUrl &url) |
| QSslConfiguration | sslConfiguration() const |
| void | swap(QNetworkRequest &other) |
| QUrl | url() const |
| bool | operator!=(const QNetworkRequest &other) const |
| QNetworkRequest & | operator=(QNetworkRequest &&other) |
| QNetworkRequest & | operator=(const QNetworkRequest &other) |
| bool | operator==(const QNetworkRequest &other) const |
Подробное описание
Класс QNetworkRequest хранит запрос, который должен быть отправлен с помощью QNetworkAccessManager.
QNetworkRequest является частью API сетевого доступа и представляет собой класс, содержащий информацию, необходимую для отправки запроса по сети. Он содержит URL-адрес и некоторую вспомогательную информацию, которая может быть использована для изменения запроса.
См. также QNetworkReply и QNetworkAccessManager.
Документация по типу членов
Перечисление QNetworkRequest::Attribute
Коды атрибутов для QNetworkRequest и QNetworkReply.
Атрибуты — это дополнительная метаданные, используемые для управления поведением запроса и для передачи дополнительной информации от ответа обратно в приложение. Атрибуты также расширяемы, что позволяет пользовательским реализациям передавать пользовательские значения.
В следующей таблице объясняются значения кодов атрибутов, типы QVariant, связанные с ними, значение по умолчанию в случае отсутствия атрибута и то, используется ли он в запросах или ответах.
| Константа | Значение | Описание |
|---|---|---|
QNetworkRequest::HttpStatusCodeAttribute |
0 |
Только ответы, тип: QMetaType::Int (без значения по умолчанию) Указывает код состояния HTTP, полученный от HTTP-сервера (например, 200, 304, 404, 401 и т.д.). Если соединение не было HTTP-based, этот атрибут отсутствует. |
QNetworkRequest::HttpReasonPhraseAttribute |
1 |
Только ответы, тип: QMetaType::QByteArray (без значения по умолчанию) Указывает текстовое сообщение причины HTTP, полученное от HTTP-сервера (например, "Ok", "Found", "Not Found", "Access Denied" и т.д.). Это читаемое человеком представление кода состояния (см. выше). Если соединение не было HTTP-based, этот атрибут отсутствует. |
QNetworkRequest::RedirectionTargetAttribute |
2 |
Только ответы, тип: QMetaType::QUrl (без значения по умолчанию) Если присутствует, указывает, что сервер перенаправляет запрос на другой URL. API доступа к сети по умолчанию не следует перенаправлениям: приложение может определить, следует ли разрешать запрошенное перенаправление в соответствии со своими политиками безопасности, или оно может установить QNetworkRequest::FollowRedirectsAttribute в true (в этом случае перенаправление будет выполнено, и этот атрибут будет отсутствовать в ответе). Возвращаемый URL может быть относительным. Используйте QUrl::resolved() для создания абсолютного URL из него. |
QNetworkRequest::ConnectionEncryptedAttribute |
3 |
Только ответы, тип: QMetaType::Bool (по умолчанию: false) Указывает, были ли данные получены по зашифрованному (защищенному) соединению. |
QNetworkRequest::CacheLoadControlAttribute |
4 |
Только запросы, тип: QMetaType::Int (по умолчанию: QNetworkRequest::PreferNetwork) Управляет тем, как следует обращаться к кэшу. Возможные значения — это значения QNetworkRequest::CacheLoadControl. Обратите внимание, что реализация QNetworkAccessManager по умолчанию не поддерживает кэширование. Однако этот атрибут может использоваться некоторыми бэкендами для изменения своих запросов (например, для кэширующих прокси). |
QNetworkRequest::CacheSaveControlAttribute |
5 |
Только запросы, тип: QMetaType::Bool (по умолчанию: true) Управляет тем, следует ли сохранять полученные данные в кэше для последующего использования. Если значение равно false, полученные данные не будут автоматически кэшироваться. Если true, данные могут быть кэшированы, при условии, что они кэшируемы (что кэшируется, зависит от используемого протокола). |
QNetworkRequest::SourceIsFromCacheAttribute |
6 |
Только ответы, тип: QMetaType::Bool (по умолчанию: false) Указывает, были ли данные получены из кэша или нет. |
QNetworkRequest::DoNotBufferUploadDataAttribute |
7 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Указывает, разрешено ли коду QNetworkAccessManager буферизировать данные для загрузки, например, при выполнении HTTP POST. При использовании этого флага с последовательными данными для загрузки необходимо установить заголовок ContentLengthHeader. |
QNetworkRequest::HttpPipeliningAllowedAttribute |
8 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Указывает, разрешено ли коду QNetworkAccessManager использовать HTTP-конвейеризацию с этим запросом. |
QNetworkRequest::HttpPipeliningWasUsedAttribute |
9 |
Только ответы, тип: QMetaType::Bool Указывает, использовалась ли HTTP-конвейеризация для получения этого ответа. |
QNetworkRequest::CustomVerbAttribute |
10 |
Только запросы, тип: QMetaType::QByteArray Содержит значение для пользовательского HTTP-глагола для отправки (предназначено для использования других глаголов, кроме GET, POST, PUT и DELETE). Этот глагол устанавливается при вызове QNetworkAccessManager::sendCustomRequest(). |
QNetworkRequest::CookieLoadControlAttribute |
11 |
Только запросы, тип: QMetaType::Int (по умолчанию: QNetworkRequest::Automatic) Указывает, следует ли отправлять заголовки 'Cookie' в запросе. Этот атрибут устанавливается в false Qt WebKit при создании межсайтового XMLHttpRequest, где withCredentials не был явно установлен в true Javascript, создавшим запрос. Более подробная информация приведена здесь. (Это значение было введено в версии 4.7.) |
QNetworkRequest::CookieSaveControlAttribute |
13 |
Только запросы, тип: QMetaType::Int (по умолчанию: QNetworkRequest::Automatic) Указывает, следует ли сохранять заголовки 'Cookie', полученные от сервера в ответ на запрос. Этот атрибут устанавливается в false Qt WebKit при создании межсайтового XMLHttpRequest, где withCredentials не был явно установлен в true Javascript, создавшим запрос. Более подробная информация приведена здесь. (Это значение было введено в версии 4.7.) |
QNetworkRequest::AuthenticationReuseAttribute |
12 |
Только запросы, тип: QMetaType::Int (по умолчанию: QNetworkRequest::Automatic) Указывает, следует ли использовать кэшированные учетные данные авторизации в запросе, если они доступны. Если это значение установлено в QNetworkRequest::Manual, и механизм аутентификации — 'Basic' или 'Digest', Qt не будет отправлять заголовок HTTP 'Authorization' с любыми кэшированными учетными данными, которые у него могут быть для URL запроса. Этот атрибут устанавливается в QNetworkRequest::Manual Qt WebKit при создании межсайтового XMLHttpRequest, где withCredentials не был явно установлен в true Javascript, создавшим запрос. Более подробная информация приведена здесь. (Это значение было введено в версии 4.7.) |
QNetworkRequest::BackgroundRequestAttribute |
17 |
Тип: QMetaType::Bool (по умолчанию: false) Указывает, что это фоновая передача, а не передача, инициированная пользователем. В зависимости от платформы фоновые передачи могут подчиняться различным правилам. Свойство QNetworkSession ConnectInBackground будет установлено в соответствии с этим атрибутом. |
QNetworkRequest::SpdyAllowedAttribute |
18 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Указывает, разрешено ли коду QNetworkAccessManager использовать SPDY с этим запросом. Это относится только к SSL-запросам и зависит от поддержки SPDY сервером. |
QNetworkRequest::SpdyWasUsedAttribute |
19 |
Только ответы, тип: QMetaType::Bool Указывает, использовался ли SPDY для получения этого ответа. |
QNetworkRequest::HTTP2AllowedAttribute |
22 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Указывает, разрешено ли коду QNetworkAccessManager использовать HTTP/2 с этим запросом. Это относится к SSL-запросам или HTTP/2 "без шифрования". |
QNetworkRequest::HTTP2WasUsedAttribute |
23 |
Только ответы, тип: QMetaType::Bool (по умолчанию: false) Указывает, использовался ли HTTP/2 для получения этого ответа. (Это значение было введено в версии 5.9.) |
QNetworkRequest::EmitAllUploadProgressSignalsAttribute |
20 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Указывает, следует ли отправлять все сигналы загрузки. По умолчанию сигнал uploadProgress отправляется только с интервалом в 100 миллисекунд. (Это значение было введено в версии 5.5.) |
QNetworkRequest::FollowRedirectsAttribute |
21 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Указывает, следует ли API доступа к сети автоматически следовать за ответом на перенаправление HTTP или нет. В настоящее время перенаправления, которые небезопасны, то есть перенаправление с протокола "https" на протокол "http", не допускаются. (Это значение было введено в версии 5.6.) |
QNetworkRequest::OriginalContentLengthAttribute |
24 |
Только ответы, тип QMetaType::Int Содержит исходный атрибут content-length до его аннулирования и удаления из заголовка, когда данные сжимаются, и запрос был помечен для автоматической декомпрессии. (Это значение было введено в версии 5.9.) |
QNetworkRequest::RedirectPolicyAttribute |
25 |
Только запросы, тип: QMetaType::Int, должно быть одним из значений QNetworkRequest::RedirectPolicy (по умолчанию: ManualRedirectPolicy). Этот атрибут заменяет FollowRedirectsAttribute. (Это значение было введено в версии 5.9.) |
QNetworkRequest::User |
1000 |
Тип специального значения. Дополнительную информацию можно передать в QVariants с типами от User до UserMax. По умолчанию реализация Network Access игнорирует атрибуты запроса в этом диапазоне и не генерирует атрибуты в этом диапазоне в ответах. Диапазон зарезервирован для расширений QNetworkAccessManager. |
QNetworkRequest::UserMax |
32767 |
Тип специального значения. См. User. |
Этот перечисление был введён или изменён в Qt 4.7.
enum QNetworkRequest::CacheLoadControl
Управляет механизмом кэширования QNetworkAccessManager.
| Константа | Значение | Описание |
|---|---|---|
QNetworkRequest::AlwaysNetwork |
0 |
всегда загружать из сети и не проверять, есть ли в кэше действительная запись (аналогично функции «Перезагрузка» в браузерах); кроме того, заставить промежуточные кэши перепроверить данные. |
QNetworkRequest::PreferNetwork |
1 |
значение по умолчанию; загружать из сети, если кэшированная запись старше сетевой записи. Это никогда не вернёт устаревшие данные из кэша, но перепроверит ресурсы, которые стали устаревшими. |
QNetworkRequest::PreferCache |
2 |
загружать из кэша, если он доступен, в противном случае загружать из сети. Обратите внимание, что это может вернуть, возможно, устаревшие (но не просроченные) элементы из кэша. |
QNetworkRequest::AlwaysCache |
3 |
загружать только из кэша, указывая ошибку, если элемент не был кэширован (т. е. режим офлайн). |
enum QNetworkRequest::KnownHeaders
Список известных типов заголовков, которые анализирует QNetworkRequest. Каждый известный заголовок также представлен в сыром виде со своим полным именем HTTP.
| Константа | Значение | Описание |
|---|---|---|
QNetworkRequest::ContentDispositionHeader |
6 |
Соответствует заголовку HTTP Content-Disposition и содержит строку, содержащую тип расположения (например, вложение) и параметр (например, имя файла). |
QNetworkRequest::ContentTypeHeader |
0 |
Соответствует заголовку HTTP Content-Type и содержит строку, содержащую тип носителя (MIME) и любые вспомогательные данные (например, кодировку). |
QNetworkRequest::ContentLengthHeader |
1 |
Соответствует заголовку HTTP Content-Length и содержит длину данных в байтах, передаваемых по сети. |
QNetworkRequest::LocationHeader |
2 |
Соответствует заголовку HTTP Location и содержит URL, представляющий фактическое расположение данных, включая целевой URL при перенаправлении. |
QNetworkRequest::LastModifiedHeader |
3 |
Соответствует заголовку HTTP Last-Modified и содержит QDateTime, представляющий дату последнего изменения содержимого. |
QNetworkRequest::CookieHeader |
4 |
Соответствует заголовку HTTP Cookie и содержит QList<QNetworkCookie>, представляющий куки-файлы, которые должны быть отправлены обратно серверу. |
QNetworkRequest::SetCookieHeader |
5 |
Соответствует заголовку HTTP Set-Cookie и содержит QList<QNetworkCookie>, представляющий куки-файлы, отправленные сервером для хранения локально. |
QNetworkRequest::UserAgentHeader |
7 |
Заголовок User-Agent, отправляемый клиентами HTTP. |
QNetworkRequest::ServerHeader |
8 |
Заголовок Server, получаемый клиентами HTTP. |
См. также header(), setHeader(), rawHeader(), и setRawHeader().
enum QNetworkRequest::LoadControl
Указывает, был ли какой-либо аспект механизма загрузки запроса вручную переопределён, например, Qt WebKit.
| Константа | Значение | Описание |
|---|---|---|
QNetworkRequest::Automatic |
0 |
значение по умолчанию: указывает стандартное поведение. |
QNetworkRequest::Manual |
1 |
указывает, что поведение было вручную переопределено. |
Этот перечисление был введён или изменён в Qt 4.7.
enum QNetworkRequest::Priority
В этом перечислении перечислены возможные приоритеты запросов к сети.
| Константа | Значение | Описание |
|---|---|---|
QNetworkRequest::HighPriority |
1 |
Высокий приоритет |
QNetworkRequest::NormalPriority |
3 |
Нормальный приоритет |
QNetworkRequest::LowPriority |
5 |
Низкий приоритет |
Этот перечисление был введён или изменён в Qt 4.7.
enum QNetworkRequest::RedirectPolicy
Указывает, должен ли модуль доступа к сети автоматически следовать ответу HTTP-перенаправления или нет.
| Константа | Значение | Описание |
|---|---|---|
QNetworkRequest::ManualRedirectPolicy |
0 |
Значение по умолчанию: не следовать перенаправлениям. |
QNetworkRequest::NoLessSafeRedirectPolicy |
1 |
Разрешены только перенаправления «http» -> «http», «http» -> «https» или «https» -> «https». Эквивалентно установке старого FollowRedirectsAttribute в значение true. |
QNetworkRequest::SameOriginRedirectPolicy |
2 |
Требуется тот же протокол, хост и порт. Заметьте, что http://example.com и http://example.com:80 не пройдут с этой политикой (явные/неявные порты считаются несовпадающими). |
QNetworkRequest::UserVerifiedRedirectPolicy |
3 |
Клиент решает, следовать ли каждому перенаправлению, обрабатывая сигнал redirected(), излучая redirectAllowed() на объекте QNetworkReply для разрешения перенаправления или прерывая/заканчивая его для отклонения перенаправления. Это можно использовать, например, для запроса у пользователя о согласии на перенаправление или для принятия решения на основе какой-либо конфигурации приложения. |
Этот перечисление был введён или изменён в Qt 5.9.
Документация по членам-функциям
QNetworkRequest::QNetworkRequest(const QUrl &url = QUrl())
Создаёт объект QNetworkRequest с url в качестве URL-адреса, который необходимо запросить.
QNetworkRequest::QNetworkRequest(const QNetworkRequest &other)
Создаёт копию other.
QNetworkRequest::~QNetworkRequest()
Удаляет объект QNetworkRequest.
QVariant QNetworkRequest::attribute(Attribute code, const QVariant &defaultValue = QVariant()) const
Возвращает атрибут, связанный с кодом code. Если атрибут не установлен, возвращает defaultValue.
Примечание: Эта функция не применяет значения по умолчанию, указанные в QNetworkRequest::Attribute.
См. также setAttribute() и QNetworkRequest::Attribute.
bool QNetworkRequest::hasRawHeader(const QByteArray &headerName) const
Возвращает true если сырой заголовок headerName присутствует в этом сетевом запросе.
См. также rawHeader() и setRawHeader().
QVariant QNetworkRequest::header(KnownHeaders header) const
Возвращает значение известного сетевого заголовка header, если он присутствует в этом запросе. Если он отсутствует, возвращает QVariant() (т. е., недействительный вариант).
См. также KnownHeaders, rawHeader(), и setHeader().
int QNetworkRequest::maximumRedirectsAllowed() const
Возвращает максимальное количество разрешенных перенаправлений для этого запроса.
Данная функция была добавлена в Qt 5.6.
См. также setMaximumRedirectsAllowed().
QObject *QNetworkRequest::originatingObject() const
Возвращает ссылку на объект, который инициировал этот сетевой запрос; возвращает 0, если не задан или объект был уничтожен.
Данная функция была добавлена в Qt 4.6.
См. также setOriginatingObject().
Priority QNetworkRequest::priority() const
Возвращает приоритет этого запроса.
Данная функция была добавлена в Qt 4.7.
См. также setPriority().
QByteArray QNetworkRequest::rawHeader(const QByteArray &headerName) const
Возвращает исходный вид заголовка headerName. Если такого заголовка нет, возвращается пустой QByteArray, который может быть неотличим от заголовка, присутствующего, но не имеющего содержимого (используйте hasRawHeader(), чтобы узнать, существует ли заголовок или нет).
Необработанные заголовки можно установить с помощью setRawHeader() или setHeader().
См. также header() и setRawHeader().
QList<QByteArray> QNetworkRequest::rawHeaderList() const
Возвращает список всех необработанных заголовков, установленных в этом сетевом запросе. Список упорядочен по порядку установки заголовков.
См. также hasRawHeader() и rawHeader().
void QNetworkRequest::setAttribute(Attribute code, const QVariant &value)
Устанавливает атрибут, связанный с кодом code, на значение value. Если атрибут уже установлен, предыдущее значение отбрасывается. В частности, если value является невалидным QVariant, атрибут сбрасывается.
См. также attribute() и QNetworkRequest::Attribute.
void QNetworkRequest::setHeader(KnownHeaders header, const QVariant &value)
Устанавливает значение известного заголовка header на value, перезаписывая любые ранее установленные заголовки. Эта операция также устанавливает эквивалентный необработанный HTTP-заголовок.
См. также KnownHeaders, setRawHeader() и header().
void QNetworkRequest::setMaximumRedirectsAllowed(int maxRedirectsAllowed)
Устанавливает максимальное количество разрешенных перенаправлений для этого запроса в maxRedirectsAllowed.
Данная функция была добавлена в Qt 5.6.
См. также maximumRedirectsAllowed().
void QNetworkRequest::setOriginatingObject(QObject *object)
Позволяет установить ссылку на объект object, инициирующий запрос.
Например, Qt WebKit устанавливает объект происхождения на QWebFrame, который инициировал запрос.
Данная функция была добавлена в Qt 4.6.
См. также originatingObject().
void QNetworkRequest::setPriority(Priority priority)
Устанавливает приоритет этого запроса в priority.
Примечание: Приоритет priority — это лишь подсказка для менеджера сетевого доступа. Он может её использовать, а может и нет. В настоящее время он используется для HTTP, чтобы определить, какой запрос следует отправить серверу первым.
Данная функция была добавлена в Qt 4.7.
См. также priority().
void QNetworkRequest::setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)
Устанавливает заголовок headerName со значением headerValue. Если headerName соответствует известному заголовку (см. QNetworkRequest::KnownHeaders), необработанный формат будет проанализирован, и соответствующий "обработанный" заголовок также будет установлен.
Например:
request.setRawHeader(QByteArray("Last-Modified"), QByteArray("Sun, 06 Nov 1994 08:49:37 GMT")); также установит известный заголовок LastModifiedHeader на объект QDateTime парсируемой даты.
Примечание: Установка одного и того же заголовка дважды перезаписывает предыдущее значение. Чтобы добиться поведения нескольких HTTP-заголовков с одним именем, следует конкатенировать два значения, разделяя их запятой (",") и установить один единственный необработанный заголовок.
См. также KnownHeaders, setHeader(), hasRawHeader() и rawHeader().
void QNetworkRequest::setSslConfiguration(const QSslConfiguration &config)
Устанавливает конфигурацию SSL для этого сетевого запроса на config. Применяются настройки: закрытый ключ, локальный сертификат, протокол SSL (SSLv2, SSLv3, TLSv1.0, если применимо), сертификаты CA и шифры, которые разрешено использовать SSL-бекенду.
По умолчанию конфигурация SSL не установлена, что позволяет бэкендам свободно выбирать лучшую конфигурацию для себя.
См. также sslConfiguration() и QSslConfiguration::defaultConfiguration().
void QNetworkRequest::setUrl(const QUrl &url)
Устанавливает URL, на который ссылается этот сетевой запрос, на url.
См. также url().
QSslConfiguration QNetworkRequest::sslConfiguration() const
Возвращает конфигурацию SSL этого сетевого запроса. По умолчанию настройки SSL не указаны.
См. также setSslConfiguration().
void QNetworkRequest::swap(QNetworkRequest &other)
Меняет местами этот сетевой запрос с other. Эта функция очень быстрая и никогда не терпит неудачу.
Данная функция была добавлена в Qt 5.0.
QUrl QNetworkRequest::url() const
Возвращает URL, на который ссылается этот сетевой запрос.
См. также setUrl().
bool QNetworkRequest::operator!=(const QNetworkRequest &other) const
Возвращает false если этот объект не такой же, как other.
См. также operator==().
QNetworkRequest &QNetworkRequest::operator=(QNetworkRequest &&other)
Оператор перемещения присваивания.
QNetworkRequest &QNetworkRequest::operator=(const QNetworkRequest &other)
Создаёт копию other.
bool QNetworkRequest::operator==(const QNetworkRequest &other) const
Возвращает true если этот объект такой же, как other (то есть, если у них одинаковый URL, одинаковые заголовки и одинаковые настройки метаданных).
См. также operator!=().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qnetworkrequest.html