QNetworkReply Class
La clase QNetworkReply contiene los datos y cabeceras de una petición enviada con QNetworkAccessManager. Más...
| Cabecera: | #include <QNetworkReply> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| Hereda: | QIODevice |
- Lista de todos los miembros, incluyendo los heredados
- QNetworkReply es parte de Network Programming API.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| enum | NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, TimeoutError, …, UnknownServerError } |
| RawHeaderPair |
Funciones Públicas
| virtual | ~QNetworkReply() |
| QVariant | attribute(QNetworkRequest::Attribute code) const |
| QNetworkReply::NetworkError | error() const |
| bool | hasRawHeader(QAnyStringView headerName) const |
| QVariant | header(QNetworkRequest::KnownHeaders header) const |
(since 6.8) QHttpHeaders | headers() const |
| void | ignoreSslErrors(const QList<QSslError> &errors) |
| bool | isFinished() const |
| bool | isRunning() const |
| QNetworkAccessManager * | manager() const |
| QNetworkAccessManager::Operation | operation() const |
| QByteArray | rawHeader(QAnyStringView headerName) const |
| QList<QByteArray> | rawHeaderList() const |
| const QList<QNetworkReply::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 |
Funciones Públicas Reimplementadas
| virtual void | close() override |
| virtual bool | isSequential() const override |
Slots Públicos
| virtual void | abort() = 0 |
| virtual void | ignoreSslErrors() |
Señales
| void | downloadProgress(qint64 bytesReceived, qint64 bytesTotal) |
| void | encrypted() |
| void | errorOccurred(QNetworkReply::NetworkError code) |
| void | finished() |
| void | metaDataChanged() |
| void | preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator) |
| void | redirectAllowed() |
| void | redirected(const QUrl &url) |
(since 6.3) void | requestSent() |
(since 6.3) void | socketStartedConnecting() |
| void | sslErrors(const QList<QSslError> &errors) |
| void | uploadProgress(qint64 bytesSent, qint64 bytesTotal) |
Funciones protegidas
| QNetworkReply(QObject *parent = nullptr) | |
| virtual void | ignoreSslErrorsImplementation(const QList<QSslError> &errors) |
| void | setAttribute(QNetworkRequest::Attribute code, const QVariant &value) |
| void | setError(QNetworkReply::NetworkError errorCode, const QString &errorString) |
| void | setFinished(bool finished) |
| void | setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value) |
(since 6.8) void | setHeaders(const QHttpHeaders &newHeaders) |
(since 6.8) void | setHeaders(QHttpHeaders &&newHeaders) |
| 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) |
(since 6.8) void | setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value) |
| virtual void | sslConfigurationImplementation(QSslConfiguration &configuration) const |
Funciones protegidas reimplementadas
| virtual qint64 | writeData(const char *data, qint64 len) override |
Descripción detallada
La clase QNetworkReply contiene los datos y metadatos relacionados con una solicitud enviada con QNetworkAccessManager. Al igual que QNetworkRequest, contiene una URL y cabeceras (tanto en forma analizada como sin procesar), cierta información sobre el estado de la respuesta y el contenido de la propia respuesta.
QNetworkReply es un objeto de acceso secuencial QIODevice, lo que significa que una vez leídos los datos del objeto, el dispositivo ya no los conserva. Por tanto, es responsabilidad de la aplicación conservar estos datos si lo necesita. Cada vez que se reciben más datos de la red y se procesan, se emite la señal readyRead().
La señal downloadProgress() también se emite cuando se reciben datos, pero el número de bytes que contiene puede no representar los bytes reales recibidos, si se realiza alguna transformación en el contenido (por ejemplo, descomprimir y eliminar la sobrecarga del protocolo).
Aunque QNetworkReply es un QIODevice conectado al contenido de la respuesta, también emite la señal uploadProgress(), que indica el progreso de la carga para las operaciones que tienen dicho contenido.
Nota: No elimines el objeto en la ranura conectada a la señal errorOccurred() o finished(). Utilice deleteLater().
Véase también QNetworkRequest y QNetworkAccessManager.
Documentación de tipos de miembros
enum QNetworkReply::NetworkError
Indica todas las posibles condiciones de error encontradas durante el procesamiento de la solicitud.
| Constante | Valor | Descripción |
|---|---|---|
QNetworkReply::NoError | 0 | ninguna condición de error. |
Nota: Cuando el protocolo HTTP devuelve una redirección no se informa de ningún error. Puede comprobar si hay una redirección con el atributo QNetworkRequest::RedirectionTargetAttribute.
| Constante | Valor | Descripción |
|---|---|---|
QNetworkReply::ConnectionRefusedError | 1 | el servidor remoto ha rechazado la conexión (el servidor no acepta peticiones) |
QNetworkReply::RemoteHostClosedError | 2 | el servidor remoto cerró la conexión prematuramente, antes de que se recibiera y procesara toda la respuesta |
QNetworkReply::HostNotFoundError | 3 | no se ha encontrado el nombre del host remoto (nombre de host no válido) |
QNetworkReply::TimeoutError | 4 | la conexión con el servidor remoto ha expirado |
QNetworkReply::OperationCanceledError | 5 | la operación se canceló mediante llamadas a abort() o close() antes de que finalizara. |
QNetworkReply::SslHandshakeFailedError | 6 | el handshake SSL/TLS falló y el canal encriptado no pudo ser establecido. Se debería haber emitido la señal sslErrors(). |
QNetworkReply::TemporaryNetworkFailureError | 7 | la conexión se interrumpió debido a la desconexión de la red, sin embargo el sistema ha iniciado la itinerancia a otro punto de acceso. La solicitud debe volver a enviarse y se procesará en cuanto se restablezca la conexión. |
QNetworkReply::NetworkSessionFailedError | 8 | la conexión se ha interrumpido debido a la desconexión de la red o a un fallo en el inicio de la red. |
QNetworkReply::BackgroundRequestNotAllowedError | 9 | la solicitud en segundo plano no está permitida actualmente debido a la política de la plataforma. |
QNetworkReply::TooManyRedirectsError | 10 | al seguir las redirecciones, se ha alcanzado el límite máximo. El límite está fijado por defecto en 50 o según lo establecido por QNetworkRequest::setMaxRedirectsAllowed(). (Este valor se introdujo en 5.6.) |
QNetworkReply::InsecureRedirectError | 11 | mientras se seguían las redirecciones, la API de acceso a la red detectaba una redirección de un protocolo cifrado (https) a uno no cifrado (http). (Este valor se introdujo en 5.6.) |
QNetworkReply::ProxyConnectionRefusedError | 101 | se rechazó la conexión con el servidor proxy (el servidor proxy no acepta solicitudes) |
QNetworkReply::ProxyConnectionClosedError | 102 | el servidor proxy cerró la conexión prematuramente, antes de que se recibiera y procesara toda la respuesta |
QNetworkReply::ProxyNotFoundError | 103 | no se ha encontrado el nombre de host del proxy (nombre de host del proxy no válido) |
QNetworkReply::ProxyTimeoutError | 104 | la conexión con el proxy ha expirado o el proxy no ha respondido a tiempo a la solicitud enviada |
QNetworkReply::ProxyAuthenticationRequiredError | 105 | el proxy requiere autenticación para responder a la solicitud, pero no acepta las credenciales ofrecidas (si las hay) |
QNetworkReply::ContentAccessDenied | 201 | se ha denegado el acceso al contenido remoto (similar al error HTTP 403) |
QNetworkReply::ContentOperationNotPermittedError | 202 | la operación solicitada sobre el contenido remoto no está permitida |
QNetworkReply::ContentNotFoundError | 203 | el contenido remoto no se ha encontrado en el servidor (similar al error HTTP 404) |
QNetworkReply::AuthenticationRequiredError | 204 | el servidor remoto requiere autenticación para servir el contenido, pero las credenciales proporcionadas no fueron aceptadas (si las hubiera) |
QNetworkReply::ContentReSendError | 205 | la solicitud necesitaba ser enviada de nuevo, pero esto falló por ejemplo porque los datos de carga no pudieron ser leídos por segunda vez. |
QNetworkReply::ContentConflictError | 206 | la solicitud no pudo completarse debido a un conflicto con el estado actual del recurso. |
QNetworkReply::ContentGoneError | 207 | el recurso solicitado ya no está disponible en el servidor. |
QNetworkReply::InternalServerError | 401 | el servidor se encontró con una condición inesperada que le impidió completar la solicitud. |
QNetworkReply::OperationNotImplementedError | 402 | El servidor no soporta la funcionalidad requerida para completar la solicitud. |
QNetworkReply::ServiceUnavailableError | 403 | el servidor no puede gestionar la solicitud en este momento. |
QNetworkReply::ProtocolUnknownError | 301 | La API de acceso a la red no puede atender la solicitud porque no se conoce el protocolo. |
QNetworkReply::ProtocolInvalidOperationError | 302 | la operación solicitada no es válida para este protocolo |
QNetworkReply::UnknownNetworkError | 99 | se ha detectado un error desconocido relacionado con la red |
QNetworkReply::UnknownProxyError | 199 | se ha detectado un error desconocido relacionado con el proxy |
QNetworkReply::UnknownContentError | 299 | se ha detectado un error desconocido relacionado con el contenido remoto |
QNetworkReply::ProtocolFailure | 399 | se ha detectado un fallo en el protocolo (error de análisis sintáctico, respuestas no válidas o inesperadas, etc.) |
QNetworkReply::UnknownServerError | 499 | se ha detectado un error desconocido relacionado con la respuesta del servidor |
Véase también error() y errorOccurred().
QNetworkReply::RawHeaderPair
RawHeaderPair es un par std::pair<QByteArray, QByteArray> donde el primer QByteArray es el nombre de la cabecera y el segundo es la cabecera.
Documentación de las funciones miembro
[explicit protected] QNetworkReply::QNetworkReply(QObject *parent = nullptr)
Crea un objeto QNetworkReply con el padre parent.
No se pueden instanciar directamente objetos QNetworkReply. Utilice las funciones QNetworkAccessManager para hacerlo.
[virtual noexcept] QNetworkReply::~QNetworkReply()
Elimina esta respuesta y libera los recursos asociados a ella. Si todavía hay alguna conexión de red abierta, se cerrará.
Véase también abort() y close().
[pure virtual slot] void QNetworkReply::abort()
Aborta la operación inmediatamente y cierra cualquier conexión de red aún abierta. Las cargas en curso también se interrumpen.
También se emitirá la señal finished().
Véase también close() y finished().
QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const
Devuelve el atributo asociado al código code. Si no se ha establecido el atributo, devuelve un QVariant no válido (tipo QMetaType::UnknownType).
Puede esperar que los valores por defecto listados en QNetworkRequest::Attribute se apliquen a los valores devueltos por esta función.
Véase también setAttribute() y QNetworkRequest::Attribute.
[override virtual] void QNetworkReply::close()
Reimplementa: QIODevice::close().
Cierra este dispositivo para la lectura. Los datos no leídos se descartan, pero los recursos de red no se descartan hasta que terminan. En particular, si hay alguna carga en curso, continuará hasta que finalice.
La señal finished() se emite cuando finalizan todas las operaciones y se liberan los recursos de red.
Véase también abort() y finished().
[signal] void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
Esta señal se emite para indicar el progreso de la parte de descarga de esta solicitud de red, si la hay. Si no hay ninguna descarga asociada a esta solicitud, esta señal se emitirá una vez con 0 como valor tanto de bytesReceived como de bytesTotal.
El parámetro bytesReceived indica el número de bytes recibidos, mientras que bytesTotal indica el número total de bytes que se espera descargar. Si no se conoce el número de bytes a descargar, bytesTotal será -1.
La descarga finaliza cuando bytesReceived es igual a bytesTotal. En ese momento, bytesTotal no será -1.
Tenga en cuenta que los valores de bytesReceived y bytesTotal pueden ser diferentes de size(), del número total de bytes obtenido a través de read() o readAll(), o del valor de la cabecera(ContentLengthHeader). La razón es que puede haber sobrecarga de protocolo o que los datos se compriman durante la descarga.
Véase también uploadProgress() y bytesAvailable().
[signal] void QNetworkReply::encrypted()
Esta señal se emite cuando una sesión SSL/TLS ha completado con éxito el handshake inicial. En este punto, no se ha transmitido ningún dato del usuario. La señal puede utilizarse para realizar comprobaciones adicionales en la cadena de certificados, por ejemplo para notificar a los usuarios cuando el certificado de un sitio web ha cambiado. Si la respuesta no coincide con los criterios esperados, entonces debe ser abortada llamando a QNetworkReply::abort() por una ranura conectada a esta señal. La configuración SSL en uso puede inspeccionarse utilizando el método QNetworkReply::sslConfiguration().
Internamente, QNetworkAccessManager puede abrir múltiples conexiones a un servidor, para permitirle procesar peticiones en paralelo. Estas conexiones pueden ser reutilizadas, lo que significa que la señal encrypted() no sería emitida. Esto significa que sólo se garantiza la recepción de esta señal para la primera conexión a un sitio en la vida útil de QNetworkAccessManager.
Véase también QSslSocket::encrypted() y QNetworkAccessManager::encrypted().
QNetworkReply::NetworkError QNetworkReply::error() const
Devuelve el error que se encontró durante el procesamiento de esta solicitud. Si no se ha encontrado ningún error, devuelve NoError.
Véase también setError().
[signal] void QNetworkReply::errorOccurred(QNetworkReply::NetworkError code)
Esta señal se emite cuando la respuesta detecta un error en el procesamiento. Probablemente le seguirá la señal finished(), que indica que la conexión ha finalizado.
El parámetro code contiene el código del error detectado. Llame a errorString() para obtener una representación textual de la condición de error.
Nota: No elimine el objeto de la ranura conectada a esta señal. Utilice deleteLater().
Véase también error() y errorString().
[signal] void QNetworkReply::finished()
Esta señal se emite cuando la respuesta ha terminado de procesarse. Después de que se emita esta señal, no habrá más actualizaciones de los datos o metadatos de la respuesta.
A menos que se haya llamado a close() o abort(), la respuesta seguirá abierta para su lectura, por lo que los datos podrán recuperarse mediante llamadas a read() o readAll(). En particular, si no se ha realizado ninguna llamada a read() como resultado de readyRead(), una llamada a readAll() recuperará el contenido completo en una QByteArray.
Esta señal se emite junto con QNetworkAccessManager::finished(), cuyo parámetro de respuesta es este objeto.
Nota: No elimine el objeto de la ranura conectada a esta señal. Utilice deleteLater().
También puede utilizar isFinished() para comprobar si un QNetworkReply ha finalizado incluso antes de recibir la señal finished().
Véase también setFinished(), QNetworkAccessManager::finished(), y isFinished().
bool QNetworkReply::hasRawHeader(QAnyStringView headerName) const
Devuelve true si la cabecera sin formato de nombre headerName fue enviada por el servidor remoto.
Nota: En versiones de Qt anteriores a la 6.7, esta función sólo tomaba QByteArray.
Véase también rawHeader().
QVariant QNetworkReply::header(QNetworkRequest::KnownHeaders header) const
Devuelve el valor de la cabecera conocida header, si dicha cabecera fue enviada por el servidor remoto. Si la cabecera no fue enviada, devuelve un valor inválido QVariant.
Véase también rawHeader(), setHeader() y QNetworkRequest::header().
[since 6.8] QHttpHeaders QNetworkReply::headers() const
Devuelve las cabeceras enviadas por el servidor remoto.
Esta función se introdujo en Qt 6.8.
Véase también setHeaders(), QNetworkRequest::setAttribute(), y QNetworkRequest::Attribute.
[virtual slot] void QNetworkReply::ignoreSslErrors()
Si se llama a esta función, se ignorarán los errores SSL relacionados con la conexión de red, incluidos los errores de validación del certificado.
Advertencia: Asegúrese de dejar siempre que el usuario inspeccione los errores reportados por la señal sslErrors(), y sólo llame a este método tras la confirmación del usuario de que se está procediendo correctamente. Si hay errores inesperados, la respuesta debe ser abortada. Llamar a este método sin inspeccionar los errores reales probablemente supondrá un riesgo de seguridad para tu aplicación. Utilícelo con mucho cuidado.
Esta función puede llamarse desde la ranura conectada a la señal sslErrors(), que indica qué errores se han encontrado.
Nota: Si HTTP Strict Transport Security está habilitado para QNetworkAccessManager, esta función no tiene efecto.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
networkReply, qOverload<>(&QNetworkReply::ignoreSslErrors));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
networkReply, [receiver = networkReply]() { receiver->ignoreSslErrors(); });Véase también sslConfiguration(), sslErrors() y QSslSocket::ignoreSslErrors().
void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)
Si se llama a esta función, se ignorarán los errores SSL indicados en errors.
Nota: Dado que la mayoría de los errores SSL están asociados a un certificado, para la mayoría de ellos debe establecer el certificado esperado con el que está relacionado este error SSL. Si, por ejemplo, desea realizar una petición a un servidor que utiliza un certificado autofirmado, considere el siguiente fragmento:
QList<QSslCertificate> cert = QSslCertificate::fromPath("server-certificate.pem"_L1); 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.
Múltiples llamadas a esta función reemplazarán la lista de errores que fueron pasados en llamadas previas. Puede borrar la lista de errores que desea ignorar llamando a esta función con una lista vacía.
Nota: Si HTTP Strict Transport Security está habilitado para QNetworkAccessManager, esta función no tiene efecto.
Se trata de una función sobrecargada.
Véase también sslConfiguration(), sslErrors(), QSslSocket::ignoreSslErrors(), y QNetworkAccessManager::setStrictTransportSecurityEnabled().
[virtual protected] void QNetworkReply::ignoreSslErrorsImplementation(const QList<QSslError> &errors)
Este método virtual se proporciona para poder sobrescribir el comportamiento de ignoreSslErrors(). ignoreSslErrors() es una envoltura pública para este método. errors contiene los errores que el usuario desea ignorar.
Véase también ignoreSslErrors().
bool QNetworkReply::isFinished() const
Devuelve true cuando la respuesta ha finalizado o ha sido abortada.
Véase también isRunning().
bool QNetworkReply::isRunning() const
Devuelve true cuando la petición aún se está procesando y la respuesta aún no ha finalizado ni ha sido abortada.
Véase también isFinished().
[override virtual] bool QNetworkReply::isSequential() const
Reimplementa: QIODevice::isSequential() const.
QNetworkAccessManager *QNetworkReply::manager() const
Devuelve el QNetworkAccessManager que se utilizó para crear este objeto QNetworkReply. Inicialmente, también es el objeto padre.
[signal] void QNetworkReply::metaDataChanged()
Esta señal se emite cada vez que cambian los metadatos de esta respuesta. Los metadatos son cualquier información que no sea el propio contenido (datos), incluidas las cabeceras de red. En la mayoría de los casos, los metadatos se conocerán por completo en el momento en que se reciba el primer byte de datos. Sin embargo, es posible recibir actualizaciones de las cabeceras u otros metadatos durante el procesamiento de los datos.
Véase también header(), rawHeaderList(), rawHeader() y hasRawHeader().
QNetworkAccessManager::Operation QNetworkReply::operation() const
Devuelve la operación que se publicó para esta respuesta.
Véase también setOperation().
[signal] void QNetworkReply::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
Esta señal se emite si el protocolo SSL/TLS negocia un cifrado PSK y, por tanto, se requiere una autenticación PSK.
Cuando se utiliza PSK, el cliente debe enviar al servidor una identidad válida y una clave precompartida válida, para que el handshake SSL pueda continuar. Las aplicaciones pueden proporcionar esta información en una ranura conectada a esta señal, rellenando el objeto authenticator pasado según sus necesidades.
Nota: Ignorar esta señal, o no proporcionar las credenciales requeridas, causará que el handshake falle, y por lo tanto que la conexión sea abortada.
Nota: El objeto authenticator es propiedad de la respuesta y no debe ser borrado por la aplicación.
Véase también QSslPreSharedKeyAuthenticator.
QByteArray QNetworkReply::rawHeader(QAnyStringView headerName) const
Devuelve el contenido en bruto de la cabecera headerName tal y como la envió el servidor remoto. Si no existe tal cabecera, devuelve una matriz de bytes vacía, que puede ser indistinguible de una cabecera vacía. Utilice hasRawHeader() para verificar si el servidor envió dicho campo de cabecera.
Nota: En versiones de Qt anteriores a la 6.7, esta función sólo tomaba QByteArray.
Véase también setRawHeader(), hasRawHeader(), y header().
QList<QByteArray> QNetworkReply::rawHeaderList() const
Devuelve una lista de los campos de encabezado que fueron enviados por el servidor remoto, en el orden en que fueron enviados. Se omiten las cabeceras duplicadas.
const QList<QNetworkReply::RawHeaderPair> &QNetworkReply::rawHeaderPairs() const
Devuelve una lista de pares de cabeceras sin procesar.
qint64 QNetworkReply::readBufferSize() const
Devuelve el tamaño del búfer de lectura, en bytes.
Véase también setReadBufferSize().
[signal] void QNetworkReply::redirectAllowed()
Cuando el código cliente que maneja la señal redirected() ha verificado la nueva URL, emite esta señal para permitir que la redirección siga adelante. Este protocolo se aplica a las peticiones de red cuya política de redireccionamiento está establecida en QNetworkRequest::UserVerifiedRedirectPolicy
Véase también QNetworkRequest::UserVerifiedRedirectPolicy, QNetworkAccessManager::setRedirectPolicy(), y QNetworkRequest::RedirectPolicyAttribute.
[signal] void QNetworkReply::redirected(const QUrl &url)
Esta señal se emite si QNetworkRequest::ManualRedirectPolicy no se ha establecido en la petición y el servidor ha respondido con un estado 3xx (en concreto, código de estado 301, 302, 303, 305, 307 o 308) con una url válida en la cabecera location, indicando una redirección HTTP. El parámetro url contiene la nueva url de redirección devuelta por el servidor en la cabecera location.
Véase también QNetworkRequest::RedirectPolicy.
QNetworkRequest QNetworkReply::request() const
Devuelve la solicitud que se envió para esta respuesta. En particular, tenga en cuenta que la URL de la solicitud puede ser diferente de la de la respuesta.
Véase también QNetworkRequest::url(), url() y setRequest().
[signal, since 6.3] void QNetworkReply::requestSent()
Esta señal se emite 1 o más veces cuando se envía la solicitud. Útil para el manejo personalizado del progreso o del tiempo de espera.
Esta función se introdujo en Qt 6.3.
Véase también metaDataChanged() y socketStartedConnecting().
[protected] void QNetworkReply::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
Establece el atributo code para que tenga el valor value. Si code estaba previamente establecido, se anulará. Si value es un QVariant inválido, el atributo se anulará.
Véase también attribute() y QNetworkRequest::setAttribute().
[protected] void QNetworkReply::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)
Establece la condición de error en errorCode. El mensaje legible por humanos se establece con errorString.
La llamada a setError() no emite la señal errorOccurred(QNetworkReply::NetworkError).
Véase también error() y errorString().
[protected] void QNetworkReply::setFinished(bool finished)
Establece la respuesta como finished.
Una vez establecido esto, los datos de la respuesta no deben cambiar.
Véase también finished() y isFinished().
[protected] void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
Establece la cabecera conocida header para que tenga el valor value. También se establecerá la forma en bruto correspondiente de la cabecera.
Véase también header(), setRawHeader() y QNetworkRequest::setHeader().
[protected, since 6.8] void QNetworkReply::setHeaders(const QHttpHeaders &newHeaders)
Establece newHeaders como cabecera en esta respuesta de red, anulando cualquier cabecera establecida previamente.
Si algunas cabeceras se corresponden con las cabeceras conocidas, se analizarán y también se establecerá la forma analizada correspondiente.
Esta función se introdujo en Qt 6.8.
Véase también headers() y QNetworkRequest::KnownHeaders.
[protected, since 6.8] void QNetworkReply::setHeaders(QHttpHeaders &&newHeaders)
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.8.
[protected] void QNetworkReply::setOperation(QNetworkAccessManager::Operation operation)
Establece que la operación asociada a este objeto sea operation. Este valor será devuelto por operation().
Nota: La operación debe establecerse cuando se crea este objeto y no debe volver a modificarse.
Véase también operation() y setRequest().
[protected] void QNetworkReply::setRawHeader(const QByteArray &headerName, const QByteArray &value)
Establece el valor de la cabecera headerName en value. Si headerName estaba previamente establecido, se anula. Varias cabeceras HTTP del mismo nombre son funcionalmente equivalentes a una única cabecera con los valores concatenados, separados por comas.
Si headerName coincide con una cabecera conocida, se analizará el valor value y también se establecerá la forma analizada correspondiente.
Véase también rawHeader(), header(), setHeader() y QNetworkRequest::setRawHeader().
[virtual] void QNetworkReply::setReadBufferSize(qint64 size)
Establece el tamaño del búfer de lectura en size bytes. El buffer de lectura es el buffer que contiene los datos que están siendo descargados de la red, antes de ser leídos con QIODevice::read(). Establecer el tamaño del buffer a 0 hará que el tamaño del buffer sea ilimitado.
QNetworkReply intentará dejar de leer de la red una vez que este búfer esté lleno (es decir, bytesAvailable() devuelve size o más), provocando así que la descarga también se ralentice. Si el tamaño del búfer no está limitado, QNetworkReply intentará descargar lo más rápido posible de la red.
A diferencia de QAbstractSocket::setReadBufferSize(), QNetworkReply no puede garantizar la precisión en el tamaño del búfer de lectura. Es decir, bytesAvailable() puede devolver más que size.
Véase también readBufferSize().
[protected] void QNetworkReply::setRequest(const QNetworkRequest &request)
Establece que la petición asociada a este objeto sea request. Este valor será devuelto por request().
Nota: La petición debe establecerse cuando se crea este objeto y no debe volver a modificarse.
Véase también request() y setOperation().
void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
Establece la configuración SSL para la conexión de red asociada a esta solicitud, si es posible, para que sea la de config.
Véase también sslConfiguration().
[virtual protected] void QNetworkReply::setSslConfigurationImplementation(const QSslConfiguration &configuration)
Este método virtual se proporciona para permitir sobrescribir el comportamiento de setSslConfiguration(). setSslConfiguration() es una envoltura pública para este método. Si sobrescribe este método utilice configuration para establecer la configuración SSL.
Véase también sslConfigurationImplementation() y setSslConfiguration().
[protected] void QNetworkReply::setUrl(const QUrl &url)
Establece que la URL que se está procesando sea url. Normalmente, la URL coincide con la de la petición que se envió, pero por diversas razones puede ser diferente (por ejemplo, una ruta de archivo que se hace absoluta o canónica).
Véase también url(), request() y QNetworkRequest::url().
[protected, since 6.8] void QNetworkReply::setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)
Establece el valor de la cabecera name en value. Si name estaba previamente establecido, se anula.
Esta función se introdujo en Qt 6.8.
[signal, since 6.3] void QNetworkReply::socketStartedConnecting()
Esta señal se emite 0 o más veces, cuando el socket se está conectando, antes de enviar la petición. Útil para el manejo personalizado del progreso o del tiempo de espera.
Esta función se introdujo en Qt 6.3.
Ver también metaDataChanged() y requestSent().
QSslConfiguration QNetworkReply::sslConfiguration() const
Devuelve la configuración SSL y el estado asociado a esta respuesta, si se utilizó SSL. Contendrá el certificado del servidor remoto, su cadena de certificados que conduce a la Autoridad de Certificación, así como los cifrados de encriptación en uso.
El certificado del peer y su cadena de certificados se conocerán en el momento en que se emita sslErrors(), si se emite.
Véase también setSslConfiguration().
[virtual protected] void QNetworkReply::sslConfigurationImplementation(QSslConfiguration &configuration) const
Este método virtual se proporciona para permitir sobrescribir el comportamiento de sslConfiguration(). sslConfiguration() es una envoltura pública para este método. La configuración será devuelta en configuration.
Véase también setSslConfigurationImplementation() y sslConfiguration().
[signal] void QNetworkReply::sslErrors(const QList<QSslError> &errors)
Esta señal se emite si la sesión SSL/TLS ha encontrado errores durante la configuración, incluyendo errores de verificación de certificados. El parámetro errors contiene la lista de errores.
Para indicar que los errores no son fatales y que la conexión debe continuar, se debe llamar a la función ignoreSslErrors() desde la ranura conectada a esta señal. Si no se llama, la sesión SSL se romperá antes de que se intercambie ningún dato (incluida la URL).
Esta señal puede utilizarse para mostrar un mensaje de error al usuario indicando que la seguridad puede estar comprometida y mostrar la configuración SSL (véase sslConfiguration() para obtenerla). Si el usuario decide continuar después de analizar el certificado remoto, la ranura debe llamar a ignoreSslErrors().
Véase también QSslSocket::sslErrors(), QNetworkAccessManager::sslErrors(), sslConfiguration() y ignoreSslErrors().
[signal] void QNetworkReply::uploadProgress(qint64 bytesSent, qint64 bytesTotal)
Esta señal se emite para indicar el progreso de la parte de carga de esta solicitud de red, si la hay. Si no hay ninguna carga asociada a esta solicitud, esta señal no se emitirá.
El parámetro bytesSent indica el número de bytes subidos, mientras que bytesTotal indica el número total de bytes a subir. Si no se ha podido determinar el número de bytes a subir, bytesTotal será -1.
La carga finaliza cuando bytesSent es igual a bytesTotal. En ese momento, bytesTotal no será -1.
Véase también downloadProgress().
QUrl QNetworkReply::url() const
Devuelve la URL del contenido descargado o subido. Tenga en cuenta que la URL puede ser diferente de la de la solicitud original. Si se habilitaron las redirecciones en la solicitud, esta función devuelve la URL actual a la que está accediendo la API de red, es decir, la URL del recurso al que se redirigió la solicitud.
Véase también request(), setUrl(), QNetworkRequest::url() y redirected().
[override virtual protected] qint64 QNetworkReply::writeData(const char *data, qint64 len)
Reimplementa: QIODevice::writeData(const char *data, qint64 maxSize).
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.