Spec-Zone.ru › Qt 5.11

Класс 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
  • 47 открытых функций унаследованных от QIODevice
  • 34 открытых функций унаследованных от QObject

Открытые слоты

виртуальный 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)
  • 6 сигналов унаследованных от QIODevice
  • 2 сигнала унаследованных от QObject

Защищенные функции

QNetworkReply(QObject *parent = nullptr)
виртуальный 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)
виртуальный void setSslConfigurationImplementation(const QSslConfiguration &configuration)
void setUrl(const QUrl &url)
виртуальный void sslConfigurationImplementation(QSslConfiguration &configuration) const
  • 5 защищенных функций унаследованных от QIODevice
  • 9 защищенных функций унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 общедоступная переменная, унаследованная от QIODevice
  • 1 общедоступная переменная, унаследованная от QObject
  • 2 статических общедоступных члена, унаследованных от QIODevice
  • 10 статических общедоступных членов, унаследованных от QObject
  • 2 защищённых переменных, унаследованных от QObject

Подробное описание

Класс 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 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()

Уничтожает этот ответ и освобождает все связанные с ним ресурсы. Если какие-либо сетевые соединения всё ещё открыты, они будут закрыты.

См. также abort() и close().

[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(). В частности, если вызовы read() не были сделаны в результате readyRead(), вызов 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.

Многократные вызовы этой функции заменят список ошибок, переданных в предыдущих вызовах. Вы можете очистить список ошибок, которые вы хотите пропустить, вызвав эту функцию со пустым списком.

Примечание: Если для QNetworkAccessManager включена HTTP Strict Transport Security, эта функция не оказывает никакого влияния.

Эта функция была введена в 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)

Устанавливает значение raw-заголовка 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.11/qnetworkreply.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API