Описание класса QNetworkReply
|
enum | NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, ..., ProtocolFailure } |
~QNetworkReply () | |
virtual void | abort () = 0 |
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 |
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 | ignoreSslErrors () |
void | downloadProgress ( qint64 bytesReceived, qint64 bytesTotal ) |
void | error ( QNetworkReply::NetworkError code ) |
void | finished () |
void | metaDataChanged () |
void | sslErrors ( const QList<QSslError> & errors ) |
void | uploadProgress ( qint64 bytesSent, qint64 bytesTotal ) |
QNetworkReply ( QObject * parent = 0 ) | |
void | setAttribute ( QNetworkRequest::Attribute code, const QVariant & value ) |
void | setError ( NetworkError errorCode, const QString & errorString ) |
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 ) |
void | setUrl ( const QUrl & url ) |
Класс QNetworkReply содержит данные и заголовки для запроса, отправленного с помощью QNetworkAccessManager
Класс QNetworkReply содержит данные и метаданные, связанные с размещённым с помощью QNetworkAccessManager запросом. Как QNetworkRequest, он содержит URL и заголовки (как в обработанном, так и исходном виде), некоторую информацию о состоянии ответа и содержимое самого ответа.
QNetworkReply это устройство QIODevice с последовательным доступом, что означает, что означает, что после того как данные однажды прочитаны с устройства, они больше в нём не хранятся. Поэтому приложение должно заботиться о сохранении этих данный, если они ему нужны. Когда из сети ещё приходят и обрабатываются данные, вырабатывается сигнал readyRead().
Сигнал downloadProgress() также вырабатывается когда получаются данные, но число содержащихся в нём данных может не совпадать с числом реально полученных данных в случае, когда с содержимым происходит преобразование (например, разархивирование и удаление служебной информации протокола).
Хотя QNetworkReply это QIODevice, соединённое с содержимым ответа, он также вырабатывает сигнал uploadProgress(), который отображает выполнение загрузки для операций, которые имеют загружаемую информацию.
Замечание: Не удаляйте объект в слоте, соединенный с сигналом error() или finished(). Используйте deleteLater().
Смотрите также QNetworkRequest и QNetworkAccessManager.
Отражает все возможные ошибки, найденные при обработке запроса.
Константа | Значение | Описание |
---|---|---|
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::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::ProtocolUnknownError | 301 | API сетевого доступа не смогло обработать запрос из-за того, что протокол не известен |
QNetworkReply::ProtocolInvalidOperationError | 302 | запрошенная операция недопустима для этого протокола |
QNetworkReply::UnknownNetworkError | 99 | была обнаружена неизвестная ошибка, связанная с сетью |
QNetworkReply::UnknownProxyError | 199 | была обнаружена неизвестная ошибка, связанная с прокси-сервером |
QNetworkReply::UnknownContentError | 299 | была обнаружена неизвестная ошибка, связанная с удалённым содержимым |
QNetworkReply::ProtocolFailure | 399 | был обнаружен сбой в протоколе (ошибка обработки, недействительный или неожиданный ответ и т.д.) |
Смотрите также error().
Создаёт объект QNetworkReply с родителем parent.
Вы не можете сами создавать объекты QNetworkReply. Чтобы сделать это, используйте функции QNetworkAccessManager.
Уничтожает этот запрос и удаляется все связанные с ним ресурсы. Если все еще есть открытые сетевые соединения, они будут закрыты.
Смотрите также abort() и close().
Немедленно отменяем операцию и закрывает все открытые сетевые соединения. Если есть текущие загрузки на сервер, они также отменяются.
Смотрите также close().
Возвращает свойство, связанное с кодом code. Если свойство не было установлено, возвращается недействительный QVariant (тип QVariant::Null).
Вы можете ожидать что значения по умолчанию, перечисленные в QNetworkRequest::Attribute, будут прибавлены к свойствам, возвращённым этой функцией.
Смотрите также setAttribute() и QNetworkRequest::Attribute.
Переопределено из QIODevice::close().
Закрывает это устройство для чтения. Несчитанные данные сбрасываются, но сетевые ресурсы сохраняются, пока они нужны. В частности, если в текущий момент есть загрузка на сервер, она продолжится пока сама не завершится.
Когда все операции завершены и сетевые ресурсы освобождены, вырабатывается сигнал finished().
Смотрите также abort() и finished().
Этот сигнал вырабатывается для отображения прогресса скачивания этого сетевого запроса, если есть загрузки. Если нет загрузок, связанные с этим запросом, этот сигнал будет выработан один раз с 0 в качестве значения как bytesReceived, так и bytesTotal.
Параметр bytesReceived отображает число полученных байт, а bytesTotal отображает число байт, которое планируется скачать. Если число байт для скачивания не известно, bytesTotal будет равно -1.
Загрузка будет завершена когда bytesReceived станет равно bytesTotal. В этот момент bytesTotal не будет равен -1.
Этот сигнал подходит для соединения с QProgressBar::setValue() для обновления QProgressBar, который предоставляет обратную связь с пользователем.
Заметьте, что значения как bytesReceived, так и bytesTotal могут отличаться от size(), общего числа байт, полученного через read() или readAll(), или значения header(ContentLengthHeader). Это происходит из-за дополнительных служебных данных протокола или компрессии данных при скачивании.
Смотрите также uploadProgress() и bytesAvailable().
Возвращает ошибку, которая произошла во время обработки этого запроса. Если ошибок не было, возвращает NoError.
Смотрите также setError().
Этот сигнал вырабатывается когда при обработке ответа обнаруживается ошибка. Скорее всего за ним последует сигнал finished(), указывая что это соединение завершено.
Параметр code содержит код обнаруженной ошибки. Вызовите errorString() чтобы получить текстовое представление этой ошибки.
Замечание: Не удаляйте объект в слоте, соединенным с этим сигналом. Используйте deleteLater().
Смотрите также error() и errorString().
Этот сигнал вырабатывается когда заканчивается обработка ответа. После выработки данного сигнала, данные и метаданные ответа обновляться не будут.
Если close() не был вызван, ответ будет открыт для чтения, так что данные могут быть получены с помощью read() или readAll(). В частности, если не было вызовов read() в при обработке readyRead(), вызов readAll() вернёт все данные полностью в QByteArray.
Этот сигнал вырабатывается вместе с QNetworkAccessManager::finished() в котором параметр reply указывает на этот объект.
Замечание: Не удаляйте объект в слоте, соединенным с этим сигналом. Используйте deleteLater().
Вы также можете использовать isFinished() для проверки завершена ли QNetworkReply ещё до получения сигнала finished().
Смотрите также QNetworkAccessManager::finished() и isFinished().
Возвращает true если сырой заголовок с именем headerName был послан удалённым сервером
Смотрите также rawHeader().
Возвращает значение известного заголовка header, если этот заголовок был послан удалённым сервером. Если заголовок не посылался сервером, возвращается недействительный QVariant.
Смотрите также rawHeader(), setHeader() и QNetworkRequest::header().
Если эта функция вызвана, то ошибки SSL, связанные с сетевым соединением, включая ошибки проверки сертификата, будут игнорированны.
Заметьте, что постоянный вызов этой функции может подвергнуть ваше приложение угрозе безопасности. Используйте её с осторожностью.
Эта функция может быть вызвана из слота, соединённого с сигналом sslErrors(), который указывает какие ошибки были найдены.
Смотрите также sslConfiguration(), sslErrors() и QSslSocket::ignoreSslErrors().
Это перегруженная функция.
Если вызывается эта функция, ошибки SSL данные в errors будут игнорироваться.
Обратите внимание на то, что вы можете установить ожидаемый сертификат в ошибке SSL: Если, например, вы хотите выпускать запрос серверу об использовании самостоятельно подписанного (self-signed) сертификата, рассматривается в следующем фрагменте:
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); // здесь соединяем сигналы и т.д.
Множественные вызовы этой функции затирает список ошибок, которые произошли в предыдущих вызовах. Вы можете очистить список ошибок если хотите игнорировать вызов этой функции с пустым списком.
Эта функция была введена в Qt 4.6.
Смотрите также sslConfiguration(), sslErrors() и QSslSocket::ignoreSslErrors().
Возвращает true когда ответ завершился или был прерван.
Эта функция была введена в Qt 4.6.
Смотрите также isRunning().
Возвращает true когда продолжается обработка ответа и ответ еще не завершен или был прерван.
Эта функция была введена в Qt 4.6.
Смотрите также isFinished().
Возвращает QNetworkAccessManager, который был использован для создания этого объекта QNetworkReply. Это также родительский объект.
Этот сигнал вырабатывается когда метаданные в этом ответе изменяются. Метаданные это любая информация, которая не является содержимым (данными), включая сетевые заголовки. В большинстве случаев, метаданные будут полностью известны к моменту получения первого байта данных. Тем не менее, возможно получение обновления заголовков или других метаданных во время обработки данных.
Смотрите также header(), rawHeaderList(), rawHeader() и hasRawHeader().
Возвращает операцию, которая была размещена для этого ответа.
Смотрите также setOperation().
Возвращает необработанное содержимое заголовка headerName в виде как он был послан удалённым сервером. Если нет такого заголовка, возвращает пустой массив байтов, что может быть неотличимо от пустого заголовка. Используйте hasRawHeader() для проверки послал ли сервер такое поле заголовка.
Смотрите также setRawHeader(), hasRawHeader() и header().
Возвращает список полей заголовков, которые были посланы удалённым сервером, в порядке, в котором они были посланы. Дублирующиеся заголовки соединяются вместе и занимают место последнего дубликата.
Возвращает размер буфера чтения в байтах.
Смотрите также setReadBufferSize().
Возвращает запрос, который был размещён для этого ответа. В частности, заметьте, что URL для запроса может отличаться от находящегося в ответе.
Смотрите также QNetworkRequest::url(), url() и setRequest().
Устанавливает свойство code равным value. Если code был установлен ранее, он будет перезаписан. Если value это недействительный QVariant, свойство будет удалено.
Смотрите также attribute() и QNetworkRequest::setAttribute().
Устанавливает ошибку равной errorCode. Сообщение в форме, пригодной для чтения, устанавливается с помощью errorString.
Вызов setError() не вырабатывает сигнал error(QNetworkReply::NetworkError).
Смотрите также error() и errorString().
Устанавливает известный заголовок header равным value. Соответствующая необработанная форма заголовка будет также установлена.
Смотрите также header(), setRawHeader() и QNetworkRequest::setHeader().
Устанавливает связанную операцию для этого объекта равной operation. Это значение будет возвращено функцией operation().
Замечание: операция должна быть установлена когда объект создан и больше не изменится.
Смотрите также operation() и setRequest().
Устанавливает необработанный заголовок headerName равным value. Если headerName был установлен ранее, он будет перезаписан. Несколько HTTP заголовков с одним именем функционально равны одному заголовку с объединёнными значениями, разделёнными запятыми.
Если headerName совпадает с известным заголовком, значение value будет обработано, и соответствующая обработанная форма будет также установлена.
Смотрите также rawHeader(), header(), setHeader() и QNetworkRequest::setRawHeader().
Устанавливает размер буфера для чтения равным size байтов. Буфер чтения это буфер, который содержит данные, скачанные из сети, прежде чем они прочитаны с помощью QIODevice::read(). Установка размера буфера равного 0 делает буфер неограниченного размера.
QNetworkReply будет пытаться прекратить читать данные из сети после того, как буфер заполнится (т.е. bytesAvailable() вернёт size или больше), что также вызывает замедление скачивания. Если буфер не ограничен в размере, QNetworkReply будет пытаться скачивать из сети так быстро, насколько это возможно.
В отличие от QAbstractSocket::setReadBufferSize(), QNetworkReply не может гарантировать точность размера буфера чтения. Таким образом, bytesAvailable() может вернуть больше чем size.
Смотрите также readBufferSize().
Устанавливает связанный запрос для этого ответа равным request. Это значение будет возвращено функцией request().
Замечание: запрос должен быть установлен когда объект создан и больше не изменится.
Смотрите также request() и setOperation().
Если возможно, устанавливает конфигурацию SSL для сетевого соединения, связанного с этим запросом равной config.
Смотрите также sslConfiguration().
Устанавливает URL, который будет обработан, равным url. Обычно URL совпадает с тем, что указан в размещённом запросе, но по различным причинам он может отличаться (например, путь файла может быть абсолютным или относительным).
Смотрите также url(), request() и QNetworkRequest::url().
Возвращает конфигурацию и состояние SSL, связанные с этим ответом, если SSL был использован. Она содержит сертификат удалённого сервера, его цепь сертификатов, ведущую к центру сертификации, а также используемые шифры шифрования.
Сертификат участника и его цепь сертификатов будут известны к моменту вырабатывания сигнала sslErrors(), если он будет выработан.
Смотрите также setSslConfiguration().
Этот сигнал вырабатывается если сессия SSL/TLS сталкивается с ошибкой в момент установки, включая ошибки проверки сертификатов. Параметр errors содержит список ошибок.
Для указания того, что эти ошибки не фатальны и что соединение должно быть продолжено, функция ignoreSslErrors() должна быть вызвана из слота, соединённого с сигналом. Если она не будет вызвана, сессия SSL будет сброшена перед любым обменом данных (включая URL).
Этот сигнал может быть использован для отображения сообщения об ошибке пользователю, указывая что безопасность может быть скомпрометирована и отобразить настройки SSL (для её получения смотрите sslConfiguration()). Если пользователь после анализа сертификата удалённой стороны решает продолжить соединение, слот должен вызвать ignoreSslErrors().
Смотрите также QSslSocket::sslErrors(), QNetworkAccessManager::sslErrors(), sslConfiguration() и ignoreSslErrors().
Этот сигнал вырабатывается для отображения прогресса закачивания на сервер этого сетевого запроса, если есть загрузки. Если у этого запроса нет связанного с ним закачивания на вервер, этот сигнал не будет выработан.
Параметр bytesSent отображает число отправленный байт, а bytesTotal отображает число байт, которое планируется отправить. Если число байт для отправления не может быть определено, bytesTotal будет равно -1.
Загрузка на сервер будет завершена когда bytesSent станет равно bytesTotal. В этот момент bytesTotal не будет равен -1.
Этот сигнал подходит для соединения с QProgressBar::setValue() для обновления QProgressBar, который предоставляет обратную связь с пользователем.
Смотрите также downloadProgress().
Возвращает URL скачиваемого или загружаемого на сервер содержимого. Заметьте, что этот URL может отличаться от того, что указан в оригинальном запросе.
Смотрите также request(), setUrl() и QNetworkRequest::url().
Авторские права © 2010 Nokia Corporation и/или её дочерние компании | Торговые марки | Qt 4.6.4 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |