Класс QNetworkReply
Класс QNetworkReply содержит данные и заголовки для запроса, отправленного с помощью QNetworkAccessManager Подробнее...
| Заголовок: | #include <QNetworkReply> |
| qmake: | QT += network |
| С тех пор: | Qt 4.4 |
| Наследует: | QIODevice |
Примечание: Все функции в этом классе являются повторно входящими.
Открытые типы
| Перечисление | NetworkError { НетОшибок, ОшибкаОтказаВПодключении, ОшибкаЗакрытияУдаленногоХоста, ОшибкаНеНайденХост, ..., ОшибкаНеизвестнойСервернойОшибки} |
| Тип | RawHeaderPair |
Открытые функции
| ~QNetworkReply() | |
| QVariant | attribute(QNetworkRequest::Attribute code) const |
| 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<RawHeaderPair> & | rawHeaderPairs() const |
| qint64 | readBufferSize() const |
| QNetworkRequest | request() const |
| virtual void | setReadBufferSize(qint64 size) |
| void | setSslConfiguration(const QSslConfiguration &config) |
| QSslConfiguration | sslConfiguration() const |
| QUrl | url() const |
Переопределенные открытые функции
| virtual void | close() |
Открытые слоты
| virtual void | abort() = 0 |
| virtual 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) |
Защищенные функции
| QNetworkReply(QObject *parent = Q_NULLPTR) | |
| virtual void | ignoreSslErrorsImplementation(const QList<QSslError> &errors) |
| void | setAttribute(QNetworkRequest::Attribute code, const QVariant &value) |
| void | setError(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 |
Дополнительные унаследованные члены
Подробное описание
Класс 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 = Q_NULLPTR)
Создает объект QNetworkReply с родителем parent.
Вы не можете напрямую создать объекты QNetworkReply. Используйте функции QNetworkAccessManager для этого.
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.
[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().
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<RawHeaderPair> &QNetworkReply::rawHeaderPairs() const
Возвращает список пар необработанных заголовков.
qint64 QNetworkReply::readBufferSize() const
Возвращает размер буфера чтения в байтах.
См. также setReadBufferSize().
[signal] void QNetworkReply::redirectAllowed()
Когда клиентский код, обрабатывающий сигнал redirected(), проверил новый URL, он испускает этот сигнал, чтобы разрешить редирект. Этот протокол применяется к сетевым запросам, политика редиректов которых установлена в QNetworkRequest::UserVerifiedRedirectsPolicy.
Эта функция была добавлена в 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(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)
Устанавливает значение value для необработанного заголовка headerName. Если 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.9/qnetworkreply.html