QWebEngineUrlRequestJob Class
La classe QWebEngineUrlRequestJob représente une requête URL personnalisée. Plus d'informations...
| En-tête : | #include <QWebEngineUrlRequestJob> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
| qmake : | QT += webenginecore |
| Héritages : | QObject |
Types publics
| enum | Error { NoError, UrlNotFound, UrlInvalid, RequestAborted, RequestDenied, RequestFailed } |
Fonctions publiques
| 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 |
Description détaillée
Un QWebEngineUrlRequestJob est donné à QWebEngineUrlSchemeHandler::requestStarted() et doit être géré par les implémentations dérivées de la classe. Le travail peut être traité en appelant soit reply(), soit redirect(), soit fail().
La classe appartient au moteur web et n'a pas besoin d'être supprimée. Toutefois, le moteur Web peut supprimer le travail lorsqu'il n'est plus nécessaire, et le signal QObject::destroyed() doit donc être surveillé si un pointeur sur l'objet est stocké.
Documentation sur les types de membres
enum QWebEngineUrlRequestJob::Error
Ce type d'énumération contient le type de l'erreur qui s'est produite :
| Constante | Valeur | Description de l'erreur |
|---|---|---|
QWebEngineUrlRequestJob::NoError | 0 | La requête a abouti. (Obsolète depuis Qt 6.8) |
QWebEngineUrlRequestJob::UrlNotFound | 1 | L'URL demandée n'a pas été trouvée. |
QWebEngineUrlRequestJob::UrlInvalid | 2 | L'URL demandée n'est pas valide. |
QWebEngineUrlRequestJob::RequestAborted | 3 | La demande a été annulée. |
QWebEngineUrlRequestJob::RequestDenied | 4 | La demande a été refusée. |
QWebEngineUrlRequestJob::RequestFailed | 5 | La requête a échoué. |
Documentation des fonctions membres
void QWebEngineUrlRequestJob::fail(QWebEngineUrlRequestJob::Error r)
Échec de la demande avec l'erreur r.
Voir aussi Error.
QUrl QWebEngineUrlRequestJob::initiator() const
Renvoie l'origine sérialisée du contenu à l'origine de la demande.
En général, l'origine se compose d'un schéma, d'un nom d'hôte et d'un port. Par exemple, "http://localhost:8080" est une origine valide. Le port est omis s'il s'agit du port par défaut du système (80 pour http, 443 pour https). Le nom d'hôte est omis pour les systèmes hors réseau tels que file et qrc.
Cependant, il existe également la valeur spéciale "null" qui représente une origine unique. Il s'agit, par exemple, de l'origine d'une iframe mise en bac à sable. L'objectif de cette origine spéciale est d'être toujours différente de toutes les autres origines dans la vérification de la même origine. En d'autres termes, un contenu ayant une origine unique ne doit jamais avoir un accès privilégié à un autre contenu.
Enfin, si la demande n'a pas été initiée par un contenu web, la fonction renvoie une valeur vide QUrl. Cela se produit, par exemple, lorsque vous appelez QWebEnginePage::setUrl().
Cette valeur peut être utilisée pour mettre en œuvre des contrôles d'origine croisée sécurisés.
void QWebEngineUrlRequestJob::redirect(const QUrl &url)
Redirige la demande vers url.
void QWebEngineUrlRequestJob::reply(const QByteArray &contentType, QIODevice *device)
répond à la demande avec device et le type de contenu contentType. Le type de contenu est similaire à l'en-tête HTTP Content-Type, et peut être soit un type MIME, soit un type MIME et un encodage de jeu de caractères combinés comme ceci : "text/html ; charset=utf-8".
L'utilisateur doit savoir que device sera utilisé sur un autre thread jusqu'à ce que le travail soit supprimé. Si un accès simultané à partir du thread principal est souhaité, l'utilisateur est responsable de rendre l'accès à device sûr pour le thread (par exemple, en utilisant QMutex). Notez que l'objet device n'appartient pas au moteur web. Par conséquent, le signal QObject::destroyed() de QWebEngineUrlRequestJob doit être surveillé.
Le dispositif doit rester disponible au moins aussi longtemps que le travail existe. Lors de l'appel de cette méthode avec un dispositif nouvellement construit, une solution consiste à faire du dispositif un enfant du job ou à le supprimer lui-même lorsque le job est supprimé, comme ceci :
[since 6.7] QIODevice *QWebEngineUrlRequestJob::requestBody() const
Renvoie un pointeur vers une adresse QIODevice qui donne accès au corps de la requête. Le corps de la requête peut contenir des données, par exemple lorsque la requête est une requête POST. Si le corps de la requête est vide, le QIODevice le reflète et ne renvoie aucune donnée lorsqu'il est soumis à des opérations de lecture.
Cette fonction a été introduite dans Qt 6.7.
Voir aussi QIODevice.
QMap<QByteArray, QByteArray> QWebEngineUrlRequestJob::requestHeaders() const
Renvoie tous les en-têtes HTTP ajoutés à la demande.
QByteArray QWebEngineUrlRequestJob::requestMethod() const
Renvoie la méthode HTTP de la requête (par exemple, GET ou POST).
QUrl QWebEngineUrlRequestJob::requestUrl() const
Renvoie l'URL demandée.
[since 6.6] void QWebEngineUrlRequestJob::setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const
Définir additionalResponseHeaders. Ces en-têtes supplémentaires de la réponse ne sont utilisés que lorsque QWebEngineUrlRequestJob::reply(const QByteArray&, QIODevice*) est appelé.
Cette fonction a été introduite dans 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.