Класс QNetworkReply
Класс QNetworkReply содержит данные и заголовки для запроса, отправленного с помощью QNetworkAccessManager. Подробнее...
| Заголовок: | #include <QNetworkReply> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
| Наследуется от: | QIODevice |
Примечание: Все функции в этом классе являются повторно-входящими.
Открытые типы
| Перечисление | NetworkError { НетОшибок, ОшибкаОтказаВПодключении, ОшибкаЗакрытияУдаленногоХоста, ОшибкаНеНайденХост, ..., ОшибкаНеизвестнойСервернойОшибки } |
| Тип | RawHeaderPair |
Открытые функции
| виртуальный | ~QNetworkReply() |
| QVariant | attribute(QNetworkRequest::Attribute code) const |
| QNetworkReply::NetworkError | error() const |
| bool | hasRawHeader(const QByteArray &headerName) const |
| QVariant | header(QNetworkRequest::KnownHeaders header) const |
| void | ignoreSslErrors(const QList<QSslError> &errors) |
| bool | isFinished() const |
| bool | isRunning() const |
| QNetworkAccessManager * | manager() const |
| QNetworkAccessManager::Operation | operation() const |
| QByteArray | rawHeader(const QByteArray &headerName) const |
| QList<QByteArray> | rawHeaderList() const |
| const QList<QNetworkReply::RawHeaderPair> & | rawHeaderPairs() const |
| qint64 | readBufferSize() const |
| QNetworkRequest | request() const |
| виртуальный void | setReadBufferSize(qint64 size) |
| void | setSslConfiguration(const QSslConfiguration &config) |
| QSslConfiguration | sslConfiguration() const |
| QUrl | url() const |
Переопределенные открытые функции
| виртуальный void | close() override |
Открытые слоты
| виртуальный void | abort() = 0 |
| виртуальный void | ignoreSslErrors() |
- 1 открытый слот унаследованный от QObject
Сигналы
| void | downloadProgress(qint64 bytesReceived, qint64 bytesTotal) |
| void | encrypted() |
| void | error(QNetworkReply::NetworkError code) |
| void | finished() |
| void | metaDataChanged() |
| void | preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator) |
| void | redirectAllowed() |
| void | redirected(const QUrl &url) |
| void | sslErrors(const QList<QSslError> &errors) |
| void | uploadProgress(qint64 bytesSent, qint64 bytesTotal) |
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованных от QObject
Защищенные функции
| QNetworkReply(QObject *parent = nullptr) | |
| virtual void | ignoreSslErrorsImplementation(const QList<QSslError> &errors) |
| void | setAttribute(QNetworkRequest::Attribute code, const QVariant &value) |
| void | setError(QNetworkReply::NetworkError errorCode, const QString &errorString) |
| void | setFinished(bool finished) |
| void | setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value) |
| void | setOperation(QNetworkAccessManager::Operation operation) |
| void | setRawHeader(const QByteArray &headerName, const QByteArray &value) |
| void | setRequest(const QNetworkRequest &request) |
| virtual void | setSslConfigurationImplementation(const QSslConfiguration &configuration) |
| void | setUrl(const QUrl &url) |
| virtual void | sslConfigurationImplementation(QSslConfiguration &configuration) const |
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
Подробное описание
Класс QNetworkReply содержит данные и заголовки для запроса, отправленного с помощью QNetworkAccessManager.
Класс QNetworkReply содержит данные и метаданные, связанные с запросом, отправленным с помощью QNetworkAccessManager. Как и QNetworkRequest, он содержит URL и заголовки (в парсируемой и сыром виде), некоторую информацию о состоянии ответа и содержимое самого ответа.
QNetworkReply — это последовательный QIODevice, что означает, что после чтения данных из объекта они больше не хранятся в устройстве. Поэтому приложение отвечает за сохранение этих данных, если они нужны. Всякий раз, когда дополнительные данные получены из сети и обработаны, генерируется сигнал readyRead().
Сигнал downloadProgress() также генерируется при получении данных, но количество байтов в нём может не соответствовать фактически полученным байтам, если над содержимым выполняются какие-либо преобразования (например, распаковка и удаление накладных расходов протокола).
Несмотря на то, что QNetworkReply является QIODevice, связанным с содержимым ответа, он также генерирует сигнал uploadProgress(), который указывает на прогресс загрузки для операций, содержащих такие данные.
Примечание: Не удаляйте объект в слоте, подключенном к сигналу error() или finished(). Используйте deleteLater().
См. также QNetworkRequest и QNetworkAccessManager.
Документация типов членов
перечисление QNetworkReply::NetworkError
Указывает все возможные условия ошибок, возникшие во время обработки запроса.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkReply::NoError |
0 |
отсутствие ошибки. |
Примечание: При перенаправлении HTTP-протокола ошибка не будет сообщена. Вы можете проверить наличие перенаправления с помощью атрибута QNetworkRequest::RedirectionTargetAttribute.
| Константа | Значение | Описание |
|---|---|---|
QNetworkReply::ConnectionRefusedError |
1 |
удаленный сервер отклонил подключение (сервер не принимает запросы) |
QNetworkReply::RemoteHostClosedError |
2 |
удаленный сервер преждевременно закрыл подключение, прежде чем весь ответ был получен и обработан |
QNetworkReply::HostNotFoundError |
3 |
имя удаленного хоста не найдено (неверное имя хоста) |
QNetworkReply::TimeoutError |
4 |
тайм-аут подключения к удаленному серверу |
QNetworkReply::OperationCanceledError |
5 |
операция была отменена с помощью вызовов abort() или close() до ее завершения. |
QNetworkReply::SslHandshakeFailedError |
6 |
не удалось выполнить рукопожатие SSL/TLS, и зашифрованный канал не был установлен. Сигнал sslErrors() должен был быть выпущен. |
QNetworkReply::TemporaryNetworkFailureError |
7 |
соединение было прервано из-за разрыва подключения к сети, однако система инициировала роуминг на другой доступный пункт доступа. Запрос должен быть повторно отправлен и будет обработан, как только соединение будет восстановлено. |
QNetworkReply::NetworkSessionFailedError |
8 |
соединение было прервано из-за разрыва подключения к сети или невозможности запуска сети. |
QNetworkReply::BackgroundRequestNotAllowedError |
9 |
Фоновый запрос в настоящее время не разрешен из-за политики платформы. |
QNetworkReply::TooManyRedirectsError |
10 |
при переадресации было достигнуто максимальное ограничение. По умолчанию предел установлен в 50 или как установлено в QNetworkRequest::setMaxRedirectsAllowed(). (Это значение было введено в 5.6.) |
QNetworkReply::InsecureRedirectError |
11 |
при переадресации API доступа к сети обнаружил переадресацию от зашифрованного протокола (https) к незашифрованному (http). (Это значение было введено в 5.6.) |
QNetworkReply::ProxyConnectionRefusedError |
101 |
соединение с прокси-сервером было отклонено (прокси-сервер не принимает запросы) |
QNetworkReply::ProxyConnectionClosedError |
102 |
прокси-сервер преждевременно закрыл соединение, прежде чем весь ответ был получен и обработан |
QNetworkReply::ProxyNotFoundError |
103 |
имя хоста прокси-сервера не найдено (неверное имя хоста прокси) |
QNetworkReply::ProxyTimeoutError |
104 |
соединение с прокси-сервером истекло, или прокси не ответил вовремя на отправленный запрос |
QNetworkReply::ProxyAuthenticationRequiredError |
105 |
прокси требует аутентификации для обработки запроса, но не принял какие-либо предложенные учетные данные (если таковые были) |
QNetworkReply::ContentAccessDenied |
201 |
доступ к удаленному содержимому был запрещен (аналогично ошибке HTTP 403) |
QNetworkReply::ContentOperationNotPermittedError |
202 |
запрашиваемая операция с удаленным содержимым не разрешена |
QNetworkReply::ContentNotFoundError |
203 |
удаленное содержимое не найдено на сервере (аналогично ошибке HTTP 404) |
QNetworkReply::AuthenticationRequiredError |
204 |
удаленный сервер требует аутентификации для предоставления содержимого, но предложенные учетные данные не были приняты (если таковые были) |
QNetworkReply::ContentReSendError |
205 |
запрос необходимо было отправить повторно, но это не удалось, например, потому что данные загрузки не могли быть прочитаны во второй раз. |
QNetworkReply::ContentConflictError |
206 |
запрос не может быть завершен из-за конфликта с текущим состоянием ресурса. |
QNetworkReply::ContentGoneError |
207 |
запрашиваемый ресурс больше недоступен на сервере. |
QNetworkReply::InternalServerError |
401 |
сервер столкнулся с непредвиденной ситуацией, которая помешала ему обработать запрос. |
QNetworkReply::OperationNotImplementedError |
402 |
сервер не поддерживает функциональность, необходимую для обработки запроса. |
QNetworkReply::ServiceUnavailableError |
403 |
сервер в настоящее время не может обработать запрос. |
QNetworkReply::ProtocolUnknownError |
301 |
API доступа к сети не может обработать запрос, так как протокол не известен. |
QNetworkReply::ProtocolInvalidOperationError |
302 |
запрошенная операция недопустима для данного протокола. |
QNetworkReply::UnknownNetworkError |
99 |
была обнаружена неизвестная ошибка, связанная с сетью. |
QNetworkReply::UnknownProxyError |
199 |
была обнаружена неизвестная ошибка, связанная с прокси. |
QNetworkReply::UnknownContentError |
299 |
была обнаружена неизвестная ошибка, связанная с удаленным содержимым. |
QNetworkReply::ProtocolFailure |
399 |
было обнаружено нарушение протокола (ошибка разбора, неверные или неожиданные ответы и т. д.) |
QNetworkReply::UnknownServerError |
499 |
была обнаружена неизвестная ошибка, связанная с ответом сервера. |
См. также error().
typedef QNetworkReply::RawHeaderPair
RawHeaderPair — это QPair<QByteArray, QByteArray>, где первая QByteArray — это имя заголовка, а вторая — это значение заголовка.
Документация по членам-функциям
[protected] QNetworkReply::QNetworkReply(QObject *parent = nullptr)
Создаёт объект QNetworkReply с родителем parent.
Вы не можете напрямую создавать объекты QNetworkReply. Используйте функции QNetworkAccessManager для этого.
[virtual] QNetworkReply::~QNetworkReply()
Удаляет этот ответ и освобождает все ресурсы, связанные с ним. Если какие-либо сетевые соединения всё ещё открыты, они будут закрыты.
[pure virtual slot] void QNetworkReply::abort()
Немедленно прерывает операцию и закрывает любые открытые сетевые соединения. Также прерываются все загруженные в процессе загрузки.
Сигнал finished() также будет выпущен.
См. также close() и finished().
QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const
Возвращает атрибут, связанный с кодом code. Если атрибут не был задан, возвращается недопустимый QVariant (тип QMetaType::UnknownType).
Вы можете ожидать, что значения по умолчанию, перечисленные в QNetworkRequest::Attribute, будут применены к значениям, возвращаемым этой функцией.
См. также setAttribute() и QNetworkRequest::Attribute.
[override virtual] void QNetworkReply::close()
Переопределено из QIODevice::close().
Закрывает этот устройство для чтения. Непрочитанные данные отбрасываются, но сетевые ресурсы не отбрасываются до их завершения. В частности, если в настоящее время происходит загрузка, она будет продолжена до завершения.
Сигнал finished() генерируется, когда все операции завершены, и сетевые ресурсы освобождены.
См. также abort() и finished().
[signal] void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
Этот сигнал испускается для указания прогресса загрузки части этого сетевого запроса, если таковая имеется. Если к этому запросу нет загрузки, этот сигнал будет испущен один раз со значением 0 как для bytesReceived, так и для bytesTotal.
Параметр bytesReceived указывает количество полученных байтов, а bytesTotal указывает общее количество ожидаемых байтов для загрузки. Если количество байтов для загрузки неизвестно, bytesTotal будет -1.
Загрузка завершается, когда bytesReceived равно bytesTotal. В этот момент bytesTotal не будет -1.
Обратите внимание, что значения как bytesReceived, так и bytesTotal могут отличаться от size(), общего количества байтов, полученных через read() или readAll(), или значения заголовка (ContentLengthHeader). Причина в том, что может быть накладные расходы протокола или данные могут быть сжаты во время загрузки.
См. также uploadProgress() и bytesAvailable().
[signal] void QNetworkReply::encrypted()
Этот сигнал испускается, когда сессия SSL/TLS успешно завершила начальное рукопожатие. На этом этапе данные пользователя еще не переданы. Сигнал может быть использован для выполнения дополнительных проверок цепочки сертификатов, например, для уведомления пользователей о изменении сертификата веб-сайта. Если ответ не соответствует ожидаемым критериям, он должен быть прерван вызовом QNetworkReply::abort() слотом, подключенным к этому сигналу. Конфигурация SSL, используемая в данный момент, может быть просмотрена с помощью метода QNetworkReply::sslConfiguration().
Внутренне, QNetworkAccessManager может открывать несколько подключений к серверу, чтобы позволить обрабатывать запросы параллельно. Эти подключения могут быть повторно использованы, что означает, что сигнал encrypted() не будет испущен. Это означает, что вы гарантированно получите этот сигнал только для первого подключения к сайту в течение жизненного цикла QNetworkAccessManager.
Эта функция была добавлена в Qt 5.1.
См. также QSslSocket::encrypted() и QNetworkAccessManager::encrypted().
QNetworkReply::NetworkError QNetworkReply::error() const
Возвращает ошибку, возникшую во время обработки этого запроса. Если ошибка не возникла, возвращает NoError.
См. также setError().
[signal] void QNetworkReply::error(QNetworkReply::NetworkError code)
Этот сигнал испускается, когда ответ обнаруживает ошибку в обработке. Сигнал finished() вероятно последует, указывая на завершение подключения.
Параметр code содержит код обнаруженной ошибки. Используйте errorString(), чтобы получить текстовое представление состояния ошибки.
Примечание: Не удаляйте объект в слоте, подключенном к этому сигналу. Используйте deleteLater().
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:
connect(networkReply, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error),
[=](QNetworkReply::NetworkError code){ /* ... */ }); См. также error() и errorString().
[signal] void QNetworkReply::finished()
Этот сигнал испускается, когда обработка ответа завершена. После испускания этого сигнала больше не будет обновлений данных или метаданных ответа.
Если не были вызваны close() или abort(), ответ по-прежнему будет открыт для чтения, поэтому данные могут быть получены вызовами read() или readAll(). В частности, если в результате readyRead() не было сделано никаких вызовов read(), вызов readAll() получит все содержимое в QByteArray.
Этот сигнал испускается вместе с QNetworkAccessManager::finished(), где параметр reply этого сигнала является этим объектом.
Примечание: Не удаляйте объект в слоте, подключенном к этому сигналу. Используйте deleteLater().
Вы также можете использовать isFinished(), чтобы проверить, завершился ли QNetworkReply, даже прежде чем вы получите сигнал finished().
См. также setFinished(), QNetworkAccessManager::finished() и isFinished().
bool QNetworkReply::hasRawHeader(const QByteArray &headerName) const
Возвращает true если сырой заголовок с именем headerName был отправлен удаленным сервером.
См. также rawHeader().
QVariant QNetworkReply::header(QNetworkRequest::KnownHeaders header) const
Возвращает значение известного заголовка header, если этот заголовок был отправлен удаленным сервером. Если заголовок не был отправлен, возвращает недействительный QVariant.
См. также rawHeader(), setHeader() и QNetworkRequest::header().
[virtual slot] void QNetworkReply::ignoreSslErrors()
Если эта функция вызвана, ошибки SSL, связанные с сетевым подключением, будут проигнорированы, включая ошибки валидации сертификата.
Предупреждение: Убедитесь, что пользователь всегда может проверить ошибки, сообщенные сигналом sslErrors(), и вызывайте этот метод только после подтверждения пользователя, что продолжение возможно. Если возникнут непредвиденные ошибки, ответ должен быть прерван. Вызов этого метода без проверки фактических ошибок, скорее всего, создаст угрозу безопасности для вашего приложения. Используйте с большой осторожностью!
Эта функция может быть вызвана из слота, подключенного к сигналу sslErrors(), который указывает обнаруженные ошибки.
Примечание: Если HTTP Strict Transport Security включен для QNetworkAccessManager, эта функция не имеет эффекта.
См. также sslConfiguration(), sslErrors() и QSslSocket::ignoreSslErrors().
void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)
Это перегруженная функция.
Если эта функция вызвана, ошибки SSL, указанные в errors, будут проигнорированы.
Примечание: Поскольку большинство ошибок SSL связаны с сертификатом, для большинства из них вы должны установить ожидаемый сертификат, связанный с этой ошибкой SSL. Например, если вы хотите отправить запрос на сервер, использующий самозаверяющий сертификат, рассмотрите следующий фрагмент:
QList<QSslCertificate> cert = QSslCertificate::fromPath(QLatin1String("server-certificate.pem"));
QSslError error(QSslError::SelfSignedCertificate, cert.at(0));
QList<QSslError> expectedSslErrors;
expectedSslErrors.append(error);
QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://server.tld/index.html")));
reply->ignoreSslErrors(expectedSslErrors);
// here connect signals etc. Многократные вызовы этой функции заменят список ошибок, переданных в предыдущих вызовах. Вы можете очистить список ошибок, которые вы хотите проигнорировать, вызвав эту функцию со списком пустым.
Примечание: Если HTTP Strict Transport Security включен для QNetworkAccessManager, эта функция не имеет эффекта.
Эта функция была добавлена в Qt 4.6.
См. также sslConfiguration(), sslErrors(), QSslSocket::ignoreSslErrors() и QNetworkAccessManager::setStrictTransportSecurityEnabled().
[virtual protected] void QNetworkReply::ignoreSslErrorsImplementation(const QList<QSslError> &errors)
Этот виртуальный метод предоставляется для переопределения поведения ignoreSslErrors(). ignoreSslErrors() — это общедоступная обертка для этого метода. errors содержит ошибки, которые пользователь хочет проигнорировать.
Эта функция была добавлена в Qt 5.0.
См. также ignoreSslErrors().
bool QNetworkReply::isFinished() const
Возвращает true когда ответ завершен или был прерван.
Эта функция была добавлена в Qt 4.6.
См. также isRunning().
bool QNetworkReply::isRunning() const
Возвращает true когда запрос все еще обрабатывается, а ответ еще не завершен или прерван.
Эта функция была добавлена в Qt 4.6.
См. также isFinished().
QNetworkAccessManager *QNetworkReply::manager() const
Возвращает QNetworkAccessManager, который был использован для создания объекта QNetworkReply. Изначально это также родительский объект.
[signal] void QNetworkReply::metaDataChanged()
Этот сигнал испускается всякий раз, когда метаданные в этом ответе изменяются. Метаданные — это любая информация, которая не является самим содержимым (данными), включая сетевые заголовки. В большинстве случаев метаданные будут полностью известны к моменту получения первого байта данных. Однако возможно получать обновления заголовков или других метаданных во время обработки данных.
См. также header(), rawHeaderList(), rawHeader() и hasRawHeader().
QNetworkAccessManager::Operation QNetworkReply::operation() const
Возвращает операцию, которая была выполнена для этого ответа.
См. также setOperation().
[signal] void QNetworkReply::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
Этот сигнал излучается, если рукопожатие SSL/TLS согласует криптографический пакет PSK, а следовательно, требуется аутентификация PSK.
При использовании PSK клиент должен отправить серверу действительный идентификатор и действительный предварительно согласованный ключ, чтобы SSL-рукопожатие продолжилось. Приложения могут предоставить эту информацию в слоте, подключённом к этому сигналу, заполнив переданный объект authenticator в соответствии со своими потребностями.
Примечание: Игнорирование этого сигнала или невозможность предоставить необходимые учётные данные приведет к сбою рукопожатия и, следовательно, к прерыванию соединения.
Примечание: Объект authenticator принадлежит ответу и не должен удаляться приложением.
Эта функция была добавлена в Qt 5.5.
См. также QSslPreSharedKeyAuthenticator.
QByteArray QNetworkReply::rawHeader(const QByteArray &headerName) const
Возвращает сырые содержимое заголовка headerName, отправленное удалённым сервером. Если такого заголовка нет, возвращает пустой массив байтов, который может быть неотличим от пустого заголовка. Используйте hasRawHeader(), чтобы проверить, отправил ли сервер такое поле заголовка.
См. также setRawHeader(), hasRawHeader() и header().
QList<QByteArray> QNetworkReply::rawHeaderList() const
Возвращает список полей заголовков, отправленных удалённым сервером в порядке их отправки. Повторяющиеся заголовки объединяются и занимают место последнего дубликата.
const QList<QNetworkReply::RawHeaderPair> &QNetworkReply::rawHeaderPairs() const
Возвращает список пар сырых заголовков.
qint64 QNetworkReply::readBufferSize() const
Возвращает размер буфера чтения в байтах.
См. также setReadBufferSize().
[signal] void QNetworkReply::redirectAllowed()
Когда клиентский код, обрабатывающий сигнал redirected(), проверил новый URL, он излучает этот сигнал, чтобы разрешить переадресацию. Этот протокол применяется к сетевым запросам, политика переадресации которых установлена в QNetworkRequest::UserVerifiedRedirectPolicy.
Эта функция была добавлена в Qt 5.9.
См. также QNetworkRequest::UserVerifiedRedirectPolicy, QNetworkAccessManager::setRedirectPolicy() и QNetworkRequest::RedirectPolicyAttribute.
[signal] void QNetworkReply::redirected(const QUrl &url)
Этот сигнал излучается, если атрибут QNetworkRequest::FollowRedirectsAttribute был установлен в запросе, и сервер ответил кодом состояния 3xx (конкретно 301, 302, 303, 305, 307 или 308) с корректным URL в заголовке Location, что указывает на HTTP-переадресацию. Параметр url содержит новый URL переадресации, возвращённый сервером в заголовке Location.
Эта функция была добавлена в Qt 5.6.
См. также QNetworkRequest::FollowRedirectsAttribute.
QNetworkRequest QNetworkReply::request() const
Возвращает запрос, который был выполнен для этого ответа. Обратите внимание, что URL запроса может отличаться от URL ответа.
См. также QNetworkRequest::url(), url() и setRequest().
[protected] void QNetworkReply::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
Устанавливает атрибут code со значением value. Если code был ранее установлен, он будет перезаписан. Если value — некорректный QVariant, атрибут будет сброшен.
См. также attribute() и QNetworkRequest::setAttribute().
[protected] void QNetworkReply::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)
Устанавливает состояние ошибки на errorCode. Читабельное сообщение устанавливается с помощью errorString.
Вызов setError() не излучает сигнал ошибки(QNetworkReply::NetworkError).
См. также error() и errorString().
[protected] void QNetworkReply::setFinished(bool finished)
Устанавливает ответ как finished.
После установки этого значения данные ответа не должны меняться.
Эта функция была добавлена в Qt 4.8.
См. также finished() и isFinished().
[protected] void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
Устанавливает известный заголовок header со значением value. Соответствующий сырой вид заголовка также будет установлен.
См. также header(), setRawHeader() и QNetworkRequest::setHeader().
[protected] void QNetworkReply::setOperation(QNetworkAccessManager::Operation operation)
Устанавливает ассоциированную операцию для этого объекта в operation. Это значение будет возвращено методом operation().
Примечание: Операция должна быть установлена при создании этого объекта и больше не должна изменяться.
См. также operation() и setRequest().
[protected] void QNetworkReply::setRawHeader(const QByteArray &headerName, const QByteArray &value)
Устанавливает сырой заголовок headerName со значением value. Если headerName был ранее установлен, он будет перезаписан. Несколько HTTP-заголовков с одинаковым именем функционально эквивалентны одному заголовку со значениями, конкатенированными через запятую.
Если headerName соответствует известному заголовку, значение value будет обработано, и соответствующая обработанная форма также будет установлена.
См. также rawHeader(), header(), setHeader() и QNetworkRequest::setRawHeader().
[virtual] void QNetworkReply::setReadBufferSize(qint64 size)
Устанавливает размер буфера чтения в size байт. Буфер чтения — это буфер, который хранит данные, загружаемые из сети, прежде чем они будут считаны с помощью QIODevice::read(). Установка размера буфера в 0 сделает буфер неограниченным по размеру.
QNetworkReply попытается прекратить чтение из сети, когда этот буфер заполнится (т.е. bytesAvailable() вернёт size или больше), тем самым замедлив загрузку. Если буфер не ограничен по размеру, QNetworkReply будет пытаться загружать данные из сети как можно быстрее.
В отличие от QAbstractSocket::setReadBufferSize(), QNetworkReply не может гарантировать точность размера буфера чтения. То есть bytesAvailable() может возвращать значение больше, чем size.
См. также readBufferSize().
[protected] void QNetworkReply::setRequest(const QNetworkRequest &request)
Устанавливает ассоциированный запрос для этого объекта в request. Это значение будет возвращено методом request().
Примечание: Запрос должен быть установлен при создании этого объекта и больше не должен изменяться.
См. также request() и setOperation().
void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
Устанавливает конфигурацию SSL для сетевого подключения, связанного с этим запросом, если это возможно, на значение config.
См. также sslConfiguration().
[virtual protected] void QNetworkReply::setSslConfigurationImplementation(const QSslConfiguration &configuration)
Этот виртуальный метод предоставлен для возможности переопределения поведения setSslConfiguration(). setSslConfiguration() — это общедоступная оболочка для этого метода. Если вы переопределяете этот метод, используйте configuration для установки конфигурации SSL.
Эта функция была введена в Qt 5.0.
См. также sslConfigurationImplementation() и setSslConfiguration().
[protected] void QNetworkReply::setUrl(const QUrl &url)
Устанавливает URL, обрабатываемый запросом, равным url. Обычно URL совпадает с URL запроса, который был отправлен, но по разным причинам он может отличаться (например, путь к файлу может быть преобразован в абсолютный или канонический).
См. также url(), request() и QNetworkRequest::url().
QSslConfiguration QNetworkReply::sslConfiguration() const
Возвращает конфигурацию и состояние SSL, связанные с этим ответом, если SSL использовался. Она будет содержать сертификат удаленного сервера, цепочку сертификатов, ведущую к центру сертификации, а также используемые криптографические алгоритмы шифрования.
Сертификат и цепочка сертификатов удаленного узла будут известны к моменту выдачи сигнала sslErrors(), если он выдан.
См. также setSslConfiguration().
[virtual protected] void QNetworkReply::sslConfigurationImplementation(QSslConfiguration &configuration) const
Этот виртуальный метод предоставлен для возможности переопределения поведения sslConfiguration(). sslConfiguration() — это общедоступная оболочка для этого метода. Конфигурация будет возвращена в configuration.
Эта функция была введена в Qt 5.0.
См. также setSslConfigurationImplementation() и sslConfiguration().
[signal] void QNetworkReply::sslErrors(const QList<QSslError> &errors)
Этот сигнал испускается, если сессия SSL/TLS столкнулась с ошибками во время настройки, включая ошибки проверки сертификатов. Параметр errors содержит список ошибок.
Чтобы указать, что ошибки не являются фатальными и что соединение должно быть продолжено, функция ignoreSslErrors() должна быть вызвана из слота, подключенного к этому сигналу. Если этого не сделать, сессия SSL будет разорвана до обмена любыми данными (включая URL).
Этот сигнал можно использовать для отображения сообщения об ошибке пользователю, указывающего на то, что безопасность может быть нарушена, и отобразить настройки SSL (см. sslConfiguration() для получения настроек). Если пользователь решит продолжить после анализа удаленного сертификата, слот должен вызвать ignoreSslErrors().
См. также QSslSocket::sslErrors(), QNetworkAccessManager::sslErrors(), sslConfiguration() и ignoreSslErrors().
[signal] void QNetworkReply::uploadProgress(qint64 bytesSent, qint64 bytesTotal)
Этот сигнал испускается для указания прогресса загрузки в рамках этого сетевого запроса, если таковой имеется. Если загрузка не связана с этим запросом, этот сигнал не будет испущен.
Параметр bytesSent указывает количество отправленных байтов, а bytesTotal — общее количество байтов, которые нужно отправить. Если количество байтов, которые нужно отправить, не определено, bytesTotal будет равен -1.
Загрузка завершается, когда bytesSent равно bytesTotal. В этот момент bytesTotal не будет равен -1.
См. также downloadProgress().
QUrl QNetworkReply::url() const
Возвращает URL загружаемого или передаваемого содержимого. Обратите внимание, что URL может отличаться от URL исходного запроса. Если атрибут QNetworkRequest::FollowRedirectsAttribute был установлен в запросе, эта функция возвращает текущий URL, к которому обращается сетевой API, т.е. URL, выпущенный в сигнале QNetworkReply::redirected.
См. также request(), setUrl(), QNetworkRequest::url() и redirected().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qnetworkreply.html