Класс 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 } |
Публичные функции
| 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-основанным, этот атрибут отсутствует. |
QNetworkRequest::HttpReasonPhraseAttribute |
1 |
Только для ответов, тип: QMetaType::QByteArray (без значения по умолчанию) Указывает фразу причины HTTP-статуса, полученную от HTTP-сервера (например, "Ok", "Found", "Not Found", "Access Denied" и т.д.). Это удобочитаемое представление кода статуса (см. выше). Если соединение не было HTTP-основанным, этот атрибут отсутствует. |
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, где с помощью Javascript, создавшего запрос, explicitly не установлено withCredentials = true. См. здесь для получения дополнительной информации. (Это значение было введено в 4.7.) |
QNetworkRequest::CookieSaveControlAttribute |
13 |
Только для запросов, тип: QMetaType::Int (значение по умолчанию: QNetworkRequest::Automatic) Указывает, следует ли сохранять заголовки 'Cookie', полученные от сервера в ответ на запрос. Этот атрибут устанавливается в false библиотекой Qt WebKit при создании кросс-доменного XMLHttpRequest, где с помощью Javascript, создавшего запрос, explicitly не установлено withCredentials = true. См. здесь для получения дополнительной информации. (Это значение было введено в 4.7.) |
QNetworkRequest::AuthenticationReuseAttribute |
12 |
Только для запросов, тип: QMetaType::Int (значение по умолчанию: QNetworkRequest::Automatic) Указывает, следует ли использовать кэшированные учетные данные авторизации в запросе, если они доступны. Если это установлено в QNetworkRequest::Manual, и механизм аутентификации — 'Basic' или 'Digest', Qt не будет отправлять HTTP-заголовок 'Authorization' с любыми кэшированными учетными данными для URL запроса. Этот атрибут устанавливается в QNetworkRequest::Manual библиотекой Qt WebKit при создании кросс-доменного XMLHttpRequest, где с помощью Javascript, создавшего запрос, explicitly не установлено withCredentials = true. См. здесь для получения дополнительной информации. (Это значение было введено в 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::EmitAllUploadProgressSignalsAttribute |
20 |
Только для запросов, тип: QMetaType::Bool (значение по умолчанию: false) Указывает, следует ли генерировать все сигналы загрузки. По умолчанию сигнал uploadProgress генерируется только в интервалах по 100 миллисекунд. (Это значение было введено в 5.5.) |
QNetworkRequest::FollowRedirectsAttribute |
21 |
Только для запросов, тип: QMetaType::Bool (значение по умолчанию: false) Указывает, следует ли API доступа к сети автоматически следовать ответу с HTTP-перенаправлением или нет. В настоящее время перенаправления, которые небезопасны, то есть перенаправления от протокола "https" к протоколу "http", не разрешены. (Это значение было введено в 5.6.) |
QNetworkRequest::User |
1000 |
Специальный тип. Дополнительную информацию можно передавать в QVariants с типами от User до UserMax. Реализация Network Access по умолчанию игнорирует атрибуты запроса в этом диапазоне и не генерирует атрибуты в этом диапазоне в ответах. Диапазон предназначен для расширений QNetworkAccessManager. |
QNetworkRequest::UserMax |
32767 |
Специальный тип. См. User. |
Этот перечисление был введен или изменен в Qt 4.7.
перечисление 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 и содержит строку, содержащую тип расположения (например, attachment) и параметр (например, имя файла). |
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>, представляющий cookie, которые необходимо отправить обратно на сервер. |
QNetworkRequest::SetCookieHeader |
5 |
Соответствует заголовку HTTP Set-Cookie и содержит QList<QNetworkCookie>, представляющий cookie, отправленные сервером для хранения локально. |
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.
Документация по функциям-членам
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/archives/qt-5.6/qnetworkrequest.html