Класс 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(QNetworkRequest::Attribute code, const QVariant &defaultValue = QVariant()) const |
| bool | hasRawHeader(const QByteArray &headerName) const |
| QVariant | header(QNetworkRequest::KnownHeaders header) const |
| int | maximumRedirectsAllowed() const |
| QObject * | originatingObject() const |
| QNetworkRequest::Priority | priority() const |
| QByteArray | rawHeader(const QByteArray &headerName) const |
| QList<QByteArray> | rawHeaderList() const |
| void | setAttribute(QNetworkRequest::Attribute code, const QVariant &value) |
| void | setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value) |
| void | setMaximumRedirectsAllowed(int maxRedirectsAllowed) |
| void | setOriginatingObject(QObject *object) |
| void | setPriority(QNetworkRequest::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) Управляет тем, должны ли полученные данные сохраняться в кэше для последующего использования. Если значение ложно, полученные данные не будут автоматически кэшироваться. Если истинно, данные могут быть кэшированы, если они кэшируемы (что кэшируется зависит от используемого протокола). |
QNetworkRequest::SourceIsFromCacheAttribute |
6 |
Только для ответов, тип: QMetaType::Bool (значение по умолчанию: false) Указывает, получены ли данные из кэша или нет. |
QNetworkRequest::DoNotBufferUploadDataAttribute |
7 |
Только для запросов, тип: QMetaType::Bool (значение по умолчанию: false) Указывает, разрешено ли коду QNetworkAccessManager буферизовать данные загрузки, например, при выполнении HTTP POST. При использовании этого флага с последовательными данными загрузки необходимо установить заголовок ContentLengthHeader. |
QNetworkRequest::Http2DirectAttribute |
26 |
Только запросы, тип: QMetaType::Bool (по умолчанию: false) Если установлено, этот атрибут заставит QNetworkAccessManager использовать протокол HTTP/2 без первоначального согласования протокола HTTP/2. Использование этого атрибута предполагает предварительные знания о том, что конкретный сервер поддерживает HTTP/2. Атрибут работает с SSL или 'cleartext' HTTP/2. Если окажется, что сервер не поддерживает HTTP/2, когда был указан прямой HTTP/2, QNetworkAccessManager откажется, не пытаясь перейти на HTTP/1.1. Если оба атрибута HTTP2AllowedAttribute и Http2DirectAttribute установлены, Http2DirectAttribute имеет приоритет. (Это значение было введено в 5.11.) |
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>, представляющую файлы 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.
enum QNetworkRequest::RedirectPolicy
Указывает, следует ли API доступа к сети автоматически следовать ответу 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(QNetworkRequest::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(QNetworkRequest::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().
QNetworkRequest::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(QNetworkRequest::Attribute code, const QVariant &value)
Устанавливает атрибут, связанный с кодом code, на значение value. Если атрибут уже установлен, предыдущее значение отбрасывается. В частности, если value — недействительный QVariant, атрибут сбрасывается.
См. также attribute() и QNetworkRequest::Attribute.
void QNetworkRequest::setHeader(QNetworkRequest::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(QNetworkRequest::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-бекенд.
См. также sslConfiguration() и QSslConfiguration::defaultConfiguration().
void QNetworkRequest::setUrl(const QUrl &url)
Устанавливает URL этого сетевого запроса на url.
См. также url().
QSslConfiguration QNetworkRequest::sslConfiguration() const
Возвращает конфигурацию SSL этого сетевого запроса. По умолчанию она такая же, как QSslConfiguration::defaultConfiguration().
См. также setSslConfiguration() и QSslConfiguration::defaultConfiguration().
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.11/qnetworkrequest.html