QNetworkRequestFactory Class
Classe pratique permettant de regrouper des points de terminaison de serveurs distants qui partagent des propriétés communes en matière de requêtes réseau. En savoir plus...
| En-tête : | #include <QNetworkRequestFactory> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
| Depuis : | Qt 6.7 |
- Liste de tous les membres, y compris les membres hérités
- QNetworkRequestFactory fait partie des classes partagées implicitement.
Fonctions publiques
| QNetworkRequestFactory() | |
| QNetworkRequestFactory(const QUrl &baseUrl) | |
| QNetworkRequestFactory(const QNetworkRequestFactory &other) | |
| QNetworkRequestFactory(QNetworkRequestFactory &&other) | |
| ~QNetworkRequestFactory() | |
(since 6.8) QVariant | attribute(QNetworkRequest::Attribute attribute) const |
(since 6.8) QVariant | attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const |
| QUrl | baseUrl() const |
| QByteArray | bearerToken() const |
(since 6.8) void | clearAttribute(QNetworkRequest::Attribute attribute) |
(since 6.8) void | clearAttributes() |
| void | clearBearerToken() |
| void | clearCommonHeaders() |
| void | clearPassword() |
| void | clearQueryParameters() |
| void | clearUserName() |
| QHttpHeaders | commonHeaders() const |
| QNetworkRequest | createRequest() const |
| QNetworkRequest | createRequest(const QString &path) const |
| QNetworkRequest | createRequest(const QUrlQuery &query) const |
| QNetworkRequest | createRequest(const QString &path, const QUrlQuery &query) const |
| QString | password() const |
(since 6.8) QNetworkRequest::Priority | priority() const |
| QUrlQuery | queryParameters() const |
(since 6.8) void | setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value) |
| void | setBaseUrl(const QUrl &url) |
| void | setBearerToken(const QByteArray &token) |
| void | setCommonHeaders(const QHttpHeaders &headers) |
| void | setPassword(const QString &password) |
(since 6.8) void | setPriority(QNetworkRequest::Priority priority) |
| void | setQueryParameters(const QUrlQuery &query) |
| void | setSslConfiguration(const QSslConfiguration &configuration) |
| void | setTransferTimeout(std::chrono::milliseconds timeout) |
| void | setUserName(const QString &userName) |
| QSslConfiguration | sslConfiguration() const |
| void | swap(QNetworkRequestFactory &other) |
| std::chrono::milliseconds | transferTimeout() const |
| QString | userName() const |
| QNetworkRequestFactory & | operator=(QNetworkRequestFactory &&other) |
| QNetworkRequestFactory & | operator=(const QNetworkRequestFactory &other) |
Éléments non membres associés
| QDebug | operator<<(QDebug debug, const QNetworkRequestFactory &factory) |
Description détaillée
Les serveurs REST disposent souvent de points de terminaison qui nécessitent les mêmes en-têtes et autres données. Le regroupement de ces points de terminaison à l’aide d’un objet QNetworkRequestFactory facilite l’envoi de requêtes vers ces points de terminaison ; seules les parties généralement variables, telles que le chemin d’accès et les paramètres de requête, sont fournies lors de la création d’une nouvelle requête.
Les étapes d'utilisation de base de QNetworkRequestFactory sont les suivantes :
- Instanciation
- Définition des données communes à toutes les requêtes
- Envoi des requêtes
Exemple d'utilisation :
// Instantiate a factory somewhere suitable in the application
QNetworkRequestFactory api{{"https://example.com/v1"_L1}};
// Set bearer token
api.setBearerToken("my_token");
// Issue requests (reply handling omitted for brevity)
manager.get(api.createRequest("models"_L1)); // https://example.com/v1/models
// The conventional leading '/' for the path can be used as well
manager.get(api.createRequest("/models"_L1)); // https://example.com/v1/modelsDocumentation des fonctions membres
QNetworkRequestFactory::QNetworkRequestFactory()
Crée un nouvel objet `QNetworkRequestFactory`. Utilisez ` setBaseUrl()` pour définir une URL de base valide pour les requêtes.
Voir également QNetworkRequestFactory(const QUrl &baseUrl) et setBaseUrl().
[explicit] QNetworkRequestFactory::QNetworkRequestFactory(const QUrl &baseUrl)
Crée un nouvel objet `QNetworkRequestFactory`, en initialisant l'URL de base à baseUrl. L'URL de base est utilisée pour remplir les requêtes réseau suivantes.
Si l'URL contient un composant de chemin d'accès, celui-ci sera extrait et utilisé comme chemin de base dans les requêtes réseau suivantes. Cela signifie que tous les chemins d'accès fournis lors des requêtes individuelles seront ajoutés à ce chemin de base, comme illustré ci-dessous :
// Here the API version v2 is used as the base path:
QNetworkRequestFactory api{{"https://example.com/v2"_L1}};
// ...
manager.get(api.createRequest("models"_L1)); // https://example.com/v2/models
// Equivalent with a leading '/'
manager.get(api.createRequest("/models"_L1)); // https://example.com/v2/modelsQNetworkRequestFactory::QNetworkRequestFactory(const QNetworkRequestFactory &other)
Crée une copie de other.
[constexpr noexcept default] QNetworkRequestFactory::QNetworkRequestFactory(QNetworkRequestFactory &&other)
Construit l'objet « factory » à partir de other.
Remarque : l'objet d'origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation d'une nouvelle valeur.
[noexcept] QNetworkRequestFactory::~QNetworkRequestFactory()
Supprime cet objet « QNetworkRequestFactory ».
[since 6.8] QVariant QNetworkRequestFactory::attribute(QNetworkRequest::Attribute attribute) const
Renvoie la valeur associée à ` attribute`. Si l'attribut n'a pas été défini, renvoie un objet ` QVariant` construit par défaut.
Cette fonction a été introduite dans Qt 6.8.
Voir également attribute(QNetworkRequest::Attribute, const QVariant &), setAttribute(), clearAttributes() et QNetworkRequest::Attribute.
[since 6.8] QVariant QNetworkRequestFactory::attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const
Renvoie la valeur associée à attribute. Si l'attribut n'a pas été défini, renvoie defaultValue.
Cette fonction a été introduite dans Qt 6.8.
Voir également attribute(), setAttribute(), clearAttributes() et QNetworkRequest::Attribute.
QUrl QNetworkRequestFactory::baseUrl() const
Renvoie l'URL de base utilisée pour les requêtes individuelles.
L'URL de base peut contenir un composant de chemin. Ce chemin est utilisé comme « préfixe » pour les chemins fournis lors de la génération des requêtes individuelles.
Voir également setBaseUrl().
QByteArray QNetworkRequestFactory::bearerToken() const
Renvoie le jeton « bearer » qui a été défini.
Le jeton « bearer », s'il est présent, est utilisé pour définir l'en-tête « Authorization: Bearer my_token » dans les requêtes. Il s'agit d'une convention d'autorisation courante, fournie à titre de commodité supplémentaire.
Les moyens d’obtenir le jeton « bearer » varient. Les méthodes standard incluent OAuth2 ainsi que le site web ou le tableau de bord du fournisseur de services. Il est prévu que le jeton « bearer » change au fil du temps. Par exemple, lorsqu’il est mis à jour à l’aide d’un jeton de rafraîchissement, le fait de toujours définir à nouveau le nouveau jeton garantit que les requêtes suivantes disposent du jeton le plus récent et valide.
La présence du jeton « bearer » n’a aucune incidence sur la liste fournie par la méthode commonHeaders(). Si la méthode commonHeaders() répertorie également l’en-tête Authorization, celui-ci sera écrasé.
Voir également setBearerToken() et commonHeaders().
[since 6.8] void QNetworkRequestFactory::clearAttribute(QNetworkRequest::Attribute attribute)
Efface la variable d'attribute s définie pour cette instance.
Cette fonction a été introduite dans Qt 6.8.
Voir également ` attribute()` et ` setAttribute()`.
[since 6.8] void QNetworkRequestFactory::clearAttributes()
Efface tous les attributs définis pour cette instance de fabrique.
Cette fonction a été introduite dans Qt 6.8.
Voir également attribute() et setAttribute().
void QNetworkRequestFactory::clearBearerToken()
Efface le jeton de porteur.
Voir aussi bearerToken().
void QNetworkRequestFactory::clearCommonHeaders()
Efface les en-têtes actuels.
Voir également commonHeaders() et setCommonHeaders().
void QNetworkRequestFactory::clearPassword()
Efface le mot de passe associé à cette usine.
Voir également password(), setPassword() et userName().
void QNetworkRequestFactory::clearQueryParameters()
Efface les paramètres de requête.
Voir aussi queryParameters().
void QNetworkRequestFactory::clearUserName()
Efface le nom d'utilisateur défini par défaut pour cette usine.
QHttpHeaders QNetworkRequestFactory::commonHeaders() const
Renvoie les en-têtes actuellement définis.
Voir également setCommonHeaders() et clearCommonHeaders().
QNetworkRequest QNetworkRequestFactory::createRequest() const
Renvoie un objet ` QNetworkRequest`.
La requête renvoyée est renseignée avec les données utilisées pour la configuration de cette fabrique.
Voir également createRequest(const QUrlQuery&) et createRequest(const QString&, const QUrlQuery&).
QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path) const
Renvoie un objet ` QNetworkRequest`.
L'URL de la requête renvoyée est formée en ajoutant l'path fourni à l'baseUrl (qui peut lui-même comporter un composant de chemin).
Voir également createRequest(const QString &, const QUrlQuery &), createRequest() et baseUrl().
QNetworkRequest QNetworkRequestFactory::createRequest(const QUrlQuery &query) const
Renvoie une instance de ` QNetworkRequest`.
L'URL de la requête renvoyée est formée en ajoutant l'query fourni à l'baseUrl.
Voir également createRequest(const QString &, const QUrlQuery &), createRequest() et baseUrl().
QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path, const QUrlQuery &query) const
Renvoie un objet ` QNetworkRequest`.
L'URL des requêtes renvoyée est formée en ajoutant les éléments fournis path et query à la chaîne baseUrl (qui peut comporter un chemin d'accès).
Si l'path fourni contient des éléments de requête, ceux-ci seront combinés avec les éléments de query.
Voir également createRequest(const QUrlQuery&), createRequest() et baseUrl().
QString QNetworkRequestFactory::password() const
Renvoie le mot de passe défini pour cette instance.
Voir également setPassword(), clearPassword() et userName().
[since 6.8] QNetworkRequest::Priority QNetworkRequestFactory::priority() const
Renvoie la priorité attribuée à toutes les requêtes futures créées par cette fabrique.
Cette fonction a été introduite dans Qt 6.8.
Voir également setPriority() et QNetworkRequest::priority().
QUrlQuery QNetworkRequestFactory::queryParameters() const
Renvoie les paramètres de requête qui sont ajoutés aux paramètres de requête des requêtes individuelles. Ces paramètres de requête sont ajoutés à tous les paramètres de requête éventuels fournis avec les appels individuels à la fonction createRequest().
Les cas d'utilisation des paramètres de requête récurrents dépendent du serveur, mais on peut citer comme exemples typiques la configuration de la langue ?lang=en, la spécification du format ?format=json, la spécification de la version de l'API ?version=1.0 et l'authentification par clé API.
Voir également setQueryParameters(), clearQueryParameters() et createRequest().
[since 6.8] void QNetworkRequestFactory::setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value)
Définit la valeur associée à « attribute » sur « value ». Si l'attribut est déjà défini, la valeur précédente est remplacée. Ces attributs sont appliqués à toutes les requêtes futures créées par cette fabrique.
Cette fonction a été introduite dans Qt 6.8.
Voir également attribute(), clearAttribute(), clearAttributes() et QNetworkRequest::Attribute.
void QNetworkRequestFactory::setBaseUrl(const QUrl &url)
Définit l'URL de base utilisée dans les requêtes individuelles sur url.
Voir également baseUrl().
void QNetworkRequestFactory::setBearerToken(const QByteArray &token)
Définit le jeton porteur sur token.
Voir également bearerToken() et clearBearerToken().
void QNetworkRequestFactory::setCommonHeaders(const QHttpHeaders &headers)
Définit les en-têtes headers communes à toutes les requêtes.
Ces en-têtes sont ajoutés aux en-têtes de chaque requête. Il s'agit d'un mécanisme pratique permettant de définir des en-têtes qui se répètent d'une requête à l'autre.
Voir également commonHeaders(), clearCommonHeaders() et createRequest().
void QNetworkRequestFactory::setPassword(const QString &password)
Définit le mot de passe de cette instance sur password.
Le mot de passe est défini dans l'URL de la requête lors de l'appel de la fonction createRequest(). Les fonctions QRestAccessManager et QNetworkAccessManager tenteront d'utiliser ces identifiants lorsque le serveur indiquera qu'une authentification est requise.
Voir également password(), clearPassword() et userName().
[since 6.8] void QNetworkRequestFactory::setPriority(QNetworkRequest::Priority priority)
Définit la priorité de toutes les futures requêtes créées par cette fabrique sur « priority ».
La priorité par défaut est « QNetworkRequest::NormalPriority ».
Cette fonction a été introduite dans Qt 6.8.
Voir également ` priority()` et ` QNetworkRequest::setPriority()`.
void QNetworkRequestFactory::setQueryParameters(const QUrlQuery &query)
Définit les paramètres « query » qui sont ajoutés aux paramètres de requête de chaque requête.
Voir également queryParameters() et clearQueryParameters().
void QNetworkRequestFactory::setSslConfiguration(const QSslConfiguration &configuration)
Définit la configuration SSL sur configuration.
Voir également sslConfiguration().
void QNetworkRequestFactory::setTransferTimeout(std::chrono::milliseconds timeout)
Définit l'timeout utilisée pour les transferts.
Voir également transferTimeout(), QNetworkRequest::setTransferTimeout() et QNetworkAccessManager::setTransferTimeout().
void QNetworkRequestFactory::setUserName(const QString &userName)
Définit le nom d'utilisateur de cette instance en userName.
Le nom d'utilisateur est défini dans l'URL de la requête lors de l'appel de la fonction createRequest(). Les méthodes QRestAccessManager et QNetworkAccessManager tenteront d'utiliser ces identifiants lorsque le serveur indiquera qu'une authentification est requise.
Voir également userName(), clearUserName() et password().
QSslConfiguration QNetworkRequestFactory::sslConfiguration() const
Renvoie la configuration SSL définie pour cette instance. La configuration SSL est définie pour chaque requête individuellement.
Voir également setSslConfiguration().
[noexcept] void QNetworkRequestFactory::swap(QNetworkRequestFactory &other)
Remplace ce site par other. Cette opération est très rapide et fonctionne à chaque fois.
std::chrono::milliseconds QNetworkRequestFactory::transferTimeout() const
Renvoie le délai d'expiration utilisé pour les transferts.
Voir également setTransferTimeout(), QNetworkRequest::transferTimeout() et QNetworkAccessManager::transferTimeout().
QString QNetworkRequestFactory::userName() const
Renvoie le nom d'utilisateur associé à cette instance.
Voir également setUserName(), clearUserName() et password().
[noexcept] QNetworkRequestFactory &QNetworkRequestFactory::operator=(QNetworkRequestFactory &&other)
L'opération « move-assign » attribue la valeur other et renvoie une référence à cette usine.
Remarque : l'objet d'origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation d'une nouvelle valeur.
QNetworkRequestFactory &QNetworkRequestFactory::operator=(const QNetworkRequestFactory &other)
Crée une copie de ` other ` et renvoie une référence à cette classe de fabrication.
Éléments non membres associés
QDebug operator<<(QDebug debug, const QNetworkRequestFactory &factory)
Écrit factory dans le flux debug.
Voir également Techniques de débogage.
© 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.