Класс 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() |
- 33 функции общего доступа унаследованы от QIODevice
- 31 функция общего доступа унаследованы от QObject
Слот общего доступа
| 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 | 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 |
Дополнительные унаследованные члены
END_OF_DOCUMENT_MARKERПодробное описание
Класс QNetworkReply содержит данные и заголовки для запроса, отправленного с помощью QNetworkAccessManager
Класс QNetworkReply содержит данные и метаданные, связанные с запросом, отправленным с помощью QNetworkAccessManager. Как и QNetworkRequest, он содержит URL и заголовки (как в обработанном, так и в сыром виде), некоторую информацию о состоянии ответа и содержимое самого ответа.
QNetworkReply — это устройство последовательного доступа QIODevice, что означает, что после считывания данных из объекта они больше не хранятся в устройстве. Поэтому ответственность за сохранение этих данных лежит на приложении, если оно этого требует. Всякий раз, когда из сети поступают и обрабатываются дополнительные данные, посылается сигнал readyRead().
Сигнал downloadProgress() также генерируется при получении данных, но количество байтов в нём может не соответствовать фактически полученным байтам, если над содержимым выполняется какое-либо преобразование (например, распаковка и удаление накладных расходов протокола).
Несмотря на то, что QNetworkReply является устройством QIODevice, связанным с содержимым ответа, он также генерирует сигнал uploadProgress(), который указывает на прогресс загрузки для операций, имеющих такое содержимое.
Примечание: Не удаляйте объект в слоте, подключённом к сигналу error() или finished(). Используйте deleteLater().
См. также QNetworkRequest и QNetworkAccessManager.
Документация по типам членов
enum 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-ошибке 401) |
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 перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя функции необходимо указать тип сигнала в статическом преобразовании, как показано в этом примере:
connect(networkReply, static_cast<void(QNetworkReply::*)(QNetworkReply::NetworkError)>(&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(), который указывает на найденные ошибки.
См. также 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. Многократные вызовы этой функции заменят список ошибок, переданных в предыдущих вызовах. Вы можете очистить список ошибок, которые вы хотите проигнорировать, вызвав эту функцию со пустым списком.
Эта функция была добавлена в Qt 4.6.
См. также sslConfiguration(), sslErrors() и QSslSocket::ignoreSslErrors().
[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::redirected(const QUrl &url)
Этот сигнал испускается, если атрибут QNetworkRequest::FollowRedirectsAttribute был установлен в запросе, и сервер ответил с кодом состояния 3xx (в частности, 301, 302, 303, 305 или 307) с корректным 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)
Устанавливает необработанный заголовок 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 может отличаться от исходного запроса. Если в запросе был установлен атрибут 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/archives/qt-5.6/qnetworkreply.html