En esta página

QWebEngineUrlRequestJob Class

La clase QWebEngineUrlRequestJob representa una solicitud de URL personalizada. Más...

Cabecera: #include <QWebEngineUrlRequestJob>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
Hereda: QObject

Tipos Públicos

enum Error { NoError, UrlNotFound, UrlInvalid, RequestAborted, RequestDenied, RequestFailed }

Funciones Públicas

void fail(QWebEngineUrlRequestJob::Error r)
QUrl initiator() const
void redirect(const QUrl &url)
void reply(const QByteArray &contentType, QIODevice *device)
(since 6.7) QIODevice *requestBody() const
QMap<QByteArray, QByteArray> requestHeaders() const
QByteArray requestMethod() const
QUrl requestUrl() const
(since 6.6) void setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const

Descripción Detallada

Un QWebEngineUrlRequestJob es dado a QWebEngineUrlSchemeHandler::requestStarted() y debe ser manejado por las implementaciones derivadas de la clase. El trabajo puede ser manejado llamando a reply(), redirect(), o fail().

La clase es propiedad del motor web y no necesita ser eliminada. Sin embargo, el motor web puede borrar el trabajo cuando ya no sea necesario, y por lo tanto la señal QObject::destroyed() debe ser monitorizada si se almacena un puntero al objeto.

Documentación de tipos de miembros

enum QWebEngineUrlRequestJob::Error

Este tipo enum contiene el tipo de error que se ha producido:

ConstanteValorDescripción
QWebEngineUrlRequestJob::NoError0La petición se ha realizado correctamente. (obsoleto desde Qt 6.8)
QWebEngineUrlRequestJob::UrlNotFound1No se ha encontrado la URL solicitada.
QWebEngineUrlRequestJob::UrlInvalid2La URL solicitada no es válida.
QWebEngineUrlRequestJob::RequestAborted3La petición ha sido cancelada.
QWebEngineUrlRequestJob::RequestDenied4La petición ha sido denegada.
QWebEngineUrlRequestJob::RequestFailed5La petición ha fallado.

Documentación de las funciones

void QWebEngineUrlRequestJob::fail(QWebEngineUrlRequestJob::Error r)

Falla la petición con el error r.

Véase también Error.

QUrl QWebEngineUrlRequestJob::initiator() const

Devuelve el origen serializado del contenido que inició la solicitud.

Generalmente, el origen consiste en un esquema, nombre de host y puerto. Por ejemplo, "http://localhost:8080" sería un origen válido. El puerto se omite si es el puerto predeterminado del esquema (80 para http, 443 para https). El nombre de host se omite para los esquemas que no son de red, como file y qrc.

Sin embargo, también existe el valor especial "null" que representa un origen único. Se trata, por ejemplo, del origen de un iframe "sandboxed". El propósito de este origen especial es ser siempre diferente de todos los demás orígenes en la comprobación del mismo origen. En otras palabras, el contenido con un origen único nunca debe tener acceso privilegiado a ningún otro contenido.

Por último, si la solicitud no ha sido iniciada por un contenido web, la función devolverá un QUrl vacío. Esto ocurre, por ejemplo, cuando se llama a QWebEnginePage::setUrl().

Este valor puede utilizarse para implementar comprobaciones seguras de origen cruzado.

void QWebEngineUrlRequestJob::redirect(const QUrl &url)

Redirige la petición a url.

void QWebEngineUrlRequestJob::reply(const QByteArray &contentType, QIODevice *device)

Responde a la solicitud con device y el tipo de contenido contentType. El tipo de contenido es similar a la cabecera HTTP Content-Type, y puede ser un tipo MIME, o un tipo MIME y una codificación charset combinados de la siguiente manera: "text/html; charset=utf-8".

El usuario debe ser consciente de que device se utilizará en otro hilo hasta que se elimine el trabajo. En caso de que se desee un acceso simultáneo desde el hilo principal, el usuario es responsable de hacer que el acceso a device sea seguro para el hilo (por ejemplo, utilizando QMutex). Tenga en cuenta que el objeto device no es propiedad del motor web. Por lo tanto, la señal QObject::destroyed() de QWebEngineUrlRequestJob debe ser monitorizada.

El dispositivo debe permanecer disponible al menos mientras exista el trabajo. Cuando se llama a este método con un dispositivo recién construido, una solución es hacer que el dispositivo sea hijo del trabajo o que se borre a sí mismo cuando se borre el trabajo, de la siguiente manera:

connect(job, &QObject::destroyed, device, &QObject::deleteLater);

[since 6.7] QIODevice *QWebEngineUrlRequestJob::requestBody() const

Devuelve un puntero a QIODevice que da acceso al cuerpo de la petición. El cuerpo de la petición puede contener datos, por ejemplo, cuando la petición es una petición POST. Si el cuerpo de la petición está vacío, QIODevice lo refleja y no devuelve ningún dato al realizar operaciones de lectura sobre él.

Esta función se introdujo en Qt 6.7.

Véase también QIODevice.

QMap<QByteArray, QByteArray> QWebEngineUrlRequestJob::requestHeaders() const

Devuelve cualquier cabecera HTTP añadida a la petición.

QByteArray QWebEngineUrlRequestJob::requestMethod() const

Devuelve el método HTTP de la solicitud (por ejemplo, GET o POST).

QUrl QWebEngineUrlRequestJob::requestUrl() const

Devuelve la URL solicitada.

[since 6.6] void QWebEngineUrlRequestJob::setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const

Establece additionalResponseHeaders. Estas cabeceras adicionales de la respuesta sólo se utilizan cuando se llama a QWebEngineUrlRequestJob::reply(const QByteArray&, QIODevice*).

Esta función se introdujo en Qt 6.6.

© 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.