Sur cette page

QNetworkRequest Class

La classe `QNetworkRequest` contient une requête à envoyer via ` QNetworkAccessManager`. En savoir plus...

En-tête : #include <QNetworkRequest>
CMake : find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake : QT += network

Types publics

enum Attribute { HttpStatusCodeAttribute, HttpReasonPhraseAttribute, RedirectionTargetAttribute, ConnectionEncryptedAttribute, CacheLoadControlAttribute, …, UserMax }
enum CacheLoadControl { AlwaysNetwork, PreferNetwork, PreferCache, AlwaysCache }
enum KnownHeaders { ContentDispositionHeader, ContentTypeHeader, ContentLengthHeader, LocationHeader, LastModifiedHeader, …, ServerHeader }
enum LoadControl { Automatic, Manual }
enum Priority { HighPriority, NormalPriority, LowPriority }
enum RedirectPolicy { ManualRedirectPolicy, NoLessSafeRedirectPolicy, SameOriginRedirectPolicy, UserVerifiedRedirectPolicy }
enum TransferTimeoutConstant { DefaultTransferTimeoutConstant }

Fonctions publiques

QNetworkRequest()
QNetworkRequest(const QUrl &url)
QNetworkRequest(const QNetworkRequest &other)
~QNetworkRequest()
QVariant attribute(QNetworkRequest::Attribute code, const QVariant &defaultValue = QVariant()) const
(since 6.2) qint64 decompressedSafetyCheckThreshold() const
bool hasRawHeader(QAnyStringView headerName) const
QVariant header(QNetworkRequest::KnownHeaders header) const
(since 6.8) QHttpHeaders headers() const
(since 6.5) QHttp1Configuration http1Configuration() const
QHttp2Configuration http2Configuration() const
int maximumRedirectsAllowed() const
QObject *originatingObject() const
QString peerVerifyName() const
QNetworkRequest::Priority priority() const
QByteArray rawHeader(QAnyStringView headerName) const
QList<QByteArray> rawHeaderList() const
void setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
(since 6.2) void setDecompressedSafetyCheckThreshold(qint64 threshold)
void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
(since 6.8) void setHeaders(QHttpHeaders &&newHeaders)
(since 6.8) void setHeaders(const QHttpHeaders &newHeaders)
(since 6.5) void setHttp1Configuration(const QHttp1Configuration &configuration)
void setHttp2Configuration(const QHttp2Configuration &configuration)
void setMaximumRedirectsAllowed(int maxRedirectsAllowed)
void setOriginatingObject(QObject *object)
void setPeerVerifyName(const QString &peerName)
void setPriority(QNetworkRequest::Priority priority)
void setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)
void setSslConfiguration(const QSslConfiguration &config)
(since 6.11) void setTcpKeepAliveIdleTimeBeforeProbes(std::chrono::seconds idle)
(since 6.11) void setTcpKeepAliveIntervalBetweenProbes(std::chrono::seconds interval)
(since 6.11) void setTcpKeepAliveProbeCount(int probes)
void setTransferTimeout(int timeout)
(since 6.7) void setTransferTimeout(std::chrono::milliseconds duration = DefaultTransferTimeout)
void setUrl(const QUrl &url)
QSslConfiguration sslConfiguration() const
void swap(QNetworkRequest &other)
(since 6.11) std::chrono::seconds tcpKeepAliveIdleTimeBeforeProbes() const
(since 6.11) std::chrono::seconds tcpKeepAliveIntervalBetweenProbes() const
(since 6.11) int tcpKeepAliveProbeCount() const
int transferTimeout() const
(since 6.7) std::chrono::milliseconds transferTimeoutAsDuration() const
QUrl url() const
bool operator!=(const QNetworkRequest &other) const
QNetworkRequest &operator=(const QNetworkRequest &other)
bool operator==(const QNetworkRequest &other) const

Membres publics statiques

const std::chrono::std::chrono::milliseconds DefaultTransferTimeout

Description détaillée

QNetworkRequest fait partie de l'API d'accès au réseau et est la classe contenant les informations nécessaires pour envoyer une requête sur le réseau. Elle contient une URL et des informations complémentaires pouvant être utilisées pour modifier la requête.

Voir également QNetworkReply et QNetworkAccessManager.

Documentation sur les types de membres

enum QNetworkRequest::Attribute

Codes d'attributs pour les URL QNetworkRequest et QNetworkReply.

Les attributs sont des métadonnées supplémentaires utilisées pour contrôler le comportement de la requête et pour renvoyer des informations complémentaires de la réponse vers l’application. Les attributs sont également extensibles, ce qui permet aux implémentations personnalisées de transmettre des valeurs personnalisées.

Le tableau suivant présente les codes d'attributs par défaut, les types d'QVariant s associés, la valeur par défaut en cas d'absence de l'attribut concerné, ainsi que son utilisation dans les requêtes ou les réponses.

ConstanteValeurDescription
QNetworkRequest::HttpStatusCodeAttribute0Réponses uniquement, type : QMetaType::Int (pas de valeur par défaut) Indique le code d'état HTTP reçu du serveur HTTP (par exemple 200, 304, 404, 401, etc.). Si la connexion n'était pas de type HTTP, cet attribut ne sera pas présent.
QNetworkRequest::HttpReasonPhraseAttribute1Réponses uniquement, type : QMetaType::QByteArray (pas de valeur par défaut) Indique la phrase de justification HTTP telle qu’elle a été reçue du serveur HTTP (comme « Ok », « Found », « Not Found », « Access Denied », etc.). Il s’agit de la représentation lisible par l’utilisateur du code d’état (voir ci-dessus). Si la connexion n’était pas de type HTTP, cet attribut ne sera pas présent. Remarque : la phrase de justification n’est pas utilisée avec HTTP/2.
QNetworkRequest::RedirectionTargetAttribute2Réponses uniquement, type : QMetaType::QUrl (aucune valeur par défaut) S’il est présent, il indique que le serveur redirige la requête vers une autre URL. L’API d’accès au réseau suit les redirections par défaut, sauf si l’attribut « QNetworkRequest::ManualRedirectPolicy » est utilisé. De plus, si l’attribut « QNetworkRequest::UserVerifiedRedirectPolicy » est utilisé, cet attribut sera défini si la redirection n’a pas été suivie. L’URL renvoyée peut être relative. Utilisez ` QUrl::resolved()` pour en créer une URL absolue.
QNetworkRequest::ConnectionEncryptedAttribute3Réponses uniquement, type : QMetaType::Bool (par défaut : false) Indique si les données ont été obtenues via une connexion chiffrée (sécurisée).
QNetworkRequest::CacheLoadControlAttribute4Demandes uniquement, type : QMetaType::Int (par défaut : QNetworkRequest::PreferNetwork) Contrôle la manière dont le cache doit être accédé. Les valeurs possibles sont celles de QNetworkRequest::CacheLoadControl. Notez que l’implémentation par défaut de QNetworkAccessManager ne prend pas en charge la mise en cache. Cependant, cet attribut peut être utilisé par certains backends pour modifier leurs requêtes (par exemple, pour les proxys de mise en cache).
QNetworkRequest::CacheSaveControlAttribute5Demandes uniquement, type : QMetaType::Bool (par défaut : true) Détermine si les données obtenues doivent être enregistrées en cache pour une utilisation ultérieure. Si la valeur est « false », les données obtenues ne seront pas automatiquement mises en cache. Si la valeur est « true », les données peuvent être mises en cache, à condition qu’elles soient cachables (ce qui est cachable dépend du protocole utilisé).
QNetworkRequest::SourceIsFromCacheAttribute6Réponses uniquement, type : QMetaType::Bool (par défaut : false) Indique si les données proviennent du cache ou non.
QNetworkRequest::DoNotBufferUploadDataAttribute7Demandes uniquement, type : QMetaType::Bool (par défaut : false) Indique si le code d’ QNetworkAccessManager est autorisé à mettre en mémoire tampon les données de téléchargement, par exemple lors d’une requête HTTP POST. Lorsque ce drapeau est utilisé avec des données de téléchargement séquentielles, l’en-tête ContentLengthHeader doit être défini.
QNetworkRequest::HttpPipeliningAllowedAttribute8Demandes uniquement, type : QMetaType::Bool (par défaut : false) Indique si le code QNetworkAccessManager est autorisé à utiliser le pipelining HTTP avec cette requête.
QNetworkRequest::HttpPipeliningWasUsedAttribute9Réponses uniquement, type : QMetaType::Bool Indique si le pipelining HTTP a été utilisé pour recevoir cette réponse.
QNetworkRequest::CustomVerbAttribute10Uniquement pour les requêtes, type : QMetaType::QByteArray Contient la valeur du verbe HTTP personnalisé à envoyer (destiné à l’utilisation d’autres verbes que GET, POST, PUT et DELETE). Ce verbe est défini lors de l’appel de QNetworkAccessManager::sendCustomRequest().
QNetworkRequest::CookieLoadControlAttribute11Demandes uniquement, type : QMetaType::Int (par défaut : QNetworkRequest::Automatic) Indique s'il faut envoyer des en-têtes « Cookie » dans la requête. Cet attribut est défini sur false par Qt WebKit lors de la création d'une requête XMLHttpRequest inter-origines lorsque withCredentials n'a pas été explicitement défini sur true par le code JavaScript ayant créé la requête. Voir ici pour plus d’informations. (Cette valeur a été introduite dans la version 4.7.)
QNetworkRequest::CookieSaveControlAttribute13Demandes uniquement, type : QMetaType::Int (par défaut : QNetworkRequest::Automatic) Indique s'il faut enregistrer les en-têtes « Cookie » reçus du serveur en réponse à la requête. Cet attribut est défini sur « false » par Qt WebKit lors de la création d'une requête XMLHttpRequest inter-origines pour laquelle l'attribut « withCredentials » n'a pas été explicitement défini sur « true » par le code JavaScript à l'origine de la requête. Cliquez ici pour plus d'informations. (Cette valeur a été introduite dans la version 4.7.)
QNetworkRequest::AuthenticationReuseAttribute12Demandes uniquement, type : QMetaType::Int (par défaut : QNetworkRequest::Automatic) Indique s’il faut utiliser les informations d’identification mises en cache dans la requête, si elles sont disponibles. Si cette valeur est définie sur QNetworkRequest::Manual et que le mécanisme d’authentification est « Basic » ou « Digest », Qt n’enverra pas d’en-tête HTTP « Authorization » contenant les informations d’identification mises en cache dont il pourrait disposer pour l’URL de la requête. Cet attribut est défini sur QNetworkRequest::Manual par Qt WebKit lors de la création d’une requête XMLHttpRequest inter-origines lorsque withCredentials n’a pas été explicitement défini sur true par le code JavaScript ayant créé la requête. Voir ici pour plus d’informations. (Cette valeur a été introduite dans la version 4.7.)
QNetworkRequest::BackgroundRequestAttribute17Type : QMetaType::Bool (par défaut : false) Indique qu’il s’agit d’un transfert en arrière-plan, plutôt que d’un transfert initié par l’utilisateur. Selon la plateforme, les transferts en arrière-plan peuvent être soumis à des politiques différentes.
QNetworkRequest::Http2AllowedAttribute19Demandes uniquement, type : QMetaType::Bool (par défaut : true) Indique si le code d’ QNetworkAccessManager t autorisé à utiliser HTTP/2 avec cette requête. Cela s’applique aux requêtes SSL ou au HTTP/2 « en clair » si l’attribut `Http2CleartextAllowedAttribute` est défini.
QNetworkRequest::Http2WasUsedAttribute20Réponses uniquement, type : QMetaType::Bool (par défaut : false) Indique si HTTP/2 a été utilisé pour recevoir cette réponse. (Cette valeur a été introduite dans la version 5.9.)
QNetworkRequest::EmitAllUploadProgressSignalsAttribute18Uniquement pour les requêtes, type : QMetaType::Bool (par défaut : false) Indique si tous les signaux de téléchargement doivent être émis. Par défaut, le signal uploadProgress n’est émis qu’à des intervalles de 100 millisecondes. (Cette valeur a été introduite dans la version 5.5.)
QNetworkRequest::OriginalContentLengthAttribute21Réponses uniquement, type : QMetaType::Int Conserve l’attribut content-length d’origine avant qu’il ne soit invalidé et supprimé de l’en-tête lorsque les données sont compressées et que la requête a été marquée pour être décompressée automatiquement. (Cette valeur a été introduite dans la version 5.9.)
QNetworkRequest::RedirectPolicyAttribute22Demandes uniquement, type : QMetaType::Int, doit correspondre à l’une des valeurs de QNetworkRequest::RedirectPolicy (par défaut : NoLessSafeRedirectPolicy). (Cette valeur a été introduite dans la version 5.9.)
QNetworkRequest::Http2DirectAttribute23Demandes uniquement, type : QMetaType::Bool (par défaut : false). S’il est défini, cet attribut force QNetworkAccessManager à utiliser le protocole HTTP/2 sans négociation initiale du protocole HTTP/2. L’utilisation de cet attribut implique de savoir au préalable qu’un serveur donné prend en charge HTTP/2. L’attribut fonctionne avec SSL ou avec HTTP/2 en « texte clair » si Http2CleartextAllowedAttribute est défini. Si un serveur ne prend finalement pas en charge HTTP/2 alors que HTTP/2 direct a été spécifié, QNetworkAccessManager abandonne la connexion sans tenter de basculer vers HTTP/1.1. Si les attributs Http2AllowedAttribute et Http2DirectAttribute sont tous deux définis, Http2DirectAttribute est prioritaire. (Cette valeur a été introduite dans la version 5.11.)
QNetworkRequest::AutoDeleteReplyOnFinishAttribute25Demandes uniquement, type : QMetaType::Bool (par défaut : false) S'il est activé, cet attribut force QNetworkAccessManager à supprimer l'QNetworkReply après avoir émis le message « finished ». (Cette valeur a été introduite dans la version 5.14.)
QNetworkRequest::ConnectionCacheExpiryTimeoutSecondsAttribute26Demandes uniquement, type : QMetaType::Int Détermine quand les connexions TCP vers un serveur (HTTP1 et HTTP2) doivent être fermées après le traitement de la dernière requête en attente. Si cet attribut n’est pas défini, le délai d’expiration par défaut de 120 secondes est utilisé. Définir cette valeur sur une valeur négative (par exemple -1) désactive la mise en cache de la connexion pour cette requête : la connexion ne sera ni stockée ni récupérée dans le cache, et sera fermée immédiatement après l'achèvement de la requête. Définir cette valeur sur 0 signifie que la connexion est partagée pendant son utilisation mais libérée dès qu’il n’y a plus rien dans la file d’attente. Une valeur positive spécifie un délai d’expiration personnalisé en secondes. (Cette valeur a été introduite dans la version 6.3.)
QNetworkRequest::Http2CleartextAllowedAttribute27Demandes uniquement, type : QMetaType::Bool (par défaut : false) S’il est défini, cet attribut indique à QNetworkAccessManager de tenter une mise à niveau vers HTTP/2 en texte clair (également appelé h2c). Jusqu’à Qt 7, la valeur par défaut de cet attribut peut être remplacée par « true » en définissant la variable d’environnement QT_NETWORK_H2C_ALLOWED. Cet attribut est ignoré si Http2AllowedAttribute n’est pas défini. (Cette valeur a été introduite dans la version 6.3.)
QNetworkRequest::UseCredentialsAttribute28Requêtes uniquement, type : QMetaType::Bool (par défaut : false) Indique si les requêtes Access-Control intersites sous-jacentes de XMLHttpRequest doivent être effectuées à l’aide d’identifiants. N’a aucun effet sur les requêtes de même origine. Cela n’affecte que la plateforme WebAssembly. (Cette valeur a été introduite dans la version 6.5.)
QNetworkRequest::FullLocalServerNameAttribute29Uniquement pour les requêtes, type : QMetaType::String Contient le nom complet du serveur local à utiliser pour l’ QLocalSocket sous-jacente. Cet attribut est utilisé par l’ QNetworkAccessManager pour se connecter à un serveur local spécifique, lorsque le comportement d’ QLocalSocket pour un nom simple ne suffit pas. L'URL dans QNetworkRequest doit toujours utiliser le schéma unix+http: ou local+http:. Le nom d'hôte de l'URL sera utilisé pour l'en-tête Host de la requête HTTP. (Cette valeur a été introduite dans la version 6.8.)
QNetworkRequest::User1000Type spécial. Des informations supplémentaires peuvent être transmises dans des QVariants dont les types vont de « User » à « UserMax ». L’implémentation par défaut de Network Access ignorera tous les attributs de requête de cette plage et ne produira aucun attribut de cette plage dans les réponses. Cette plage est réservée aux extensions de QNetworkAccessManager.
QNetworkRequest::UserMax32767Type spécial. Voir User.

enum QNetworkRequest::CacheLoadControl

Permet de contrôler le mécanisme de mise en cache de QNetworkAccessManager.

ConstanteValeurDescription
QNetworkRequest::AlwaysNetwork0Toujours charger depuis le réseau et ne pas vérifier si le cache contient une entrée valide (similaire à la fonctionnalité « Actualiser » des navigateurs) ; de plus, forcer les caches intermédiaires à revalider.
QNetworkRequest::PreferNetwork1Valeur par défaut ; charge depuis le réseau si l’entrée mise en cache est plus ancienne que celle du réseau. Cela ne renverra jamais de données périmées provenant du cache, mais revalidera les ressources devenues périmées.
QNetworkRequest::PreferCache2Charger à partir du cache s’il est disponible, sinon charger depuis le réseau. Notez que cela peut renvoyer des éléments potentiellement périmés (mais pas expirés) provenant du cache.
QNetworkRequest::AlwaysCache3Charger uniquement à partir du cache, en signalant une erreur si l’élément n’a pas été mis en cache (c’est-à-dire en mode hors ligne)

enum QNetworkRequest::KnownHeaders

Liste des types d'en-têtes connus analysés par QNetworkRequest. Chaque en-tête connu est également représenté sous sa forme brute avec son nom HTTP complet.

ConstanteValeurDescription
QNetworkRequest::ContentDispositionHeader6Correspond à l’en-tête HTTP Content-Disposition et contient une chaîne indiquant le type de disposition (par exemple, « attachment ») ainsi qu’un paramètre (par exemple, « filename »).
QNetworkRequest::ContentTypeHeader0Correspond à l'en-tête HTTP Content-Type et contient une chaîne indiquant le type de média (MIME) ainsi que d'éventuelles données auxiliaires (par exemple, le jeu de caractères).
QNetworkRequest::ContentLengthHeader1Correspond à l’en-tête HTTP Content-Length et contient la longueur en octets des données transmises.
QNetworkRequest::LocationHeader2Correspond à l'en-tête HTTP « Location » et contient une URL représentant l'emplacement réel des données, y compris l'URL de destination en cas de redirection.
QNetworkRequest::LastModifiedHeader3Correspond à l’en-tête HTTP « Last-Modified » et contient une date de modification ( QDateTime ) représentant la date de la dernière modification du contenu.
QNetworkRequest::IfModifiedSinceHeader9Correspond à l’en-tête HTTP `If-Modified-Since` et contient une ` QDateTime`. Il est généralement ajouté à un ` QNetworkRequest`. Le serveur doit envoyer une réponse 304 (Not Modified) si la ressource n’a pas changé depuis ce moment-là.
QNetworkRequest::ETagHeader10Correspond à l’en-tête HTTP « ETag » et contient un « QString » représentant l’état de la dernière modification du contenu.
QNetworkRequest::IfMatchHeader11Correspond à l’en-tête HTTP `If-Match` et contient une QStringList. Il est généralement ajouté à une requête de type ` QNetworkRequest`. Le serveur doit renvoyer une réponse 412 (Échec de la condition préalable) si la ressource ne correspond pas.
QNetworkRequest::IfNoneMatchHeader12Correspond à l'en-tête HTTP « If-None-Match » et contient un QStringList. Il est généralement ajouté à un QNetworkRequest. Le serveur doit envoyer une réponse 304 (Not Modified) si la ressource correspond.
QNetworkRequest::CookieHeader4Correspond à l'en-tête HTTP « Cookie » et contient une chaîne de caractères QList<QNetworkCookie> représentant les cookies à renvoyer au serveur.
QNetworkRequest::SetCookieHeader5Correspond à l’en-tête HTTP Set-Cookie et contient une QList<QNetworkCookie> représentant les cookies envoyés par le serveur pour être stockés localement.
QNetworkRequest::UserAgentHeader7L'en-tête User-Agent envoyé par les clients HTTP.
QNetworkRequest::ServerHeader8L'en-tête « Server » reçu par les clients HTTP.

Voir également header(), setHeader(), rawHeader() et setRawHeader().

enum QNetworkRequest::LoadControl

Indique si un aspect du mécanisme de chargement de la requête a été remplacé manuellement, par exemple par Qt WebKit.

ConstanteValeurDescription
QNetworkRequest::Automatic0valeur par défaut : indique le comportement par défaut.
QNetworkRequest::Manual1indique que le comportement a été remplacé manuellement.

enum QNetworkRequest::Priority

Cette énumération répertorie les priorités possibles pour les requêtes réseau.

ConstanteValeurDescription
QNetworkRequest::HighPriority1Priorité élevée
QNetworkRequest::NormalPriority3Priorité normale
QNetworkRequest::LowPriority5Faible priorité

enum QNetworkRequest::RedirectPolicy

Indique si l'API d'accès au réseau doit ou non suivre automatiquement une réponse de redirection HTTP.

ConstanteValeurDescription
QNetworkRequest::ManualRedirectPolicy0Ne suit aucune redirection.
QNetworkRequest::NoLessSafeRedirectPolicy1Valeur par défaut : seules les redirections « http » → « http », « http » → « https » ou « https » → « https » sont autorisées.
QNetworkRequest::SameOriginRedirectPolicy2Exige que le protocole, l’hôte et le port soient identiques. Remarque : les requêtes de type http://example.com et http://example.com:80 échoueront avec cette politique (les ports implicites/explicites sont considérés comme une incompatibilité).
QNetworkRequest::UserVerifiedRedirectPolicy3Le client décide s’il suit chaque redirection en gérant le signal redirected(), en émettant la méthode redirectAllowed() sur l’objet QNetworkReply pour autoriser la redirection, ou en l’interrompant/en la clôturant pour la rejeter. Cela peut servir, par exemple, à demander à l’utilisateur s’il accepte la redirection, ou à prendre une décision en fonction d’une configuration spécifique à l’application.

Remarque : lorsque Qt gère les redirections, il envoie, pour des raisons de compatibilité et de maintenance, la requête redirigée en utilisant la méthode GET lorsque le serveur renvoie une réponse 301 ou 302, quelle que soit la méthode d’origine utilisée, sauf si celle-ci était HEAD.

enum QNetworkRequest::TransferTimeoutConstant

Une constante permettant d'activer les délais d'expiration de transfert avec une valeur prédéfinie.

ConstanteValeurDescription
QNetworkRequest::DefaultTransferTimeoutConstant30000Le délai d'expiration du transfert en millisecondes. Utilisée si la fonction setTransferTimeout() est appelée sans argument.

Voir également QNetworkRequest::DefaultTransferTimeout.

Documentation des fonctions membres

QNetworkRequest::QNetworkRequest()

Crée un objet `QNetworkRequest` sans URL à interroger. Utilisez ` setUrl()` pour en définir une.

Voir également url() et setUrl().

[explicit] QNetworkRequest::QNetworkRequest(const QUrl &url)

Crée un objet QNetworkRequest avec l'URL url comme URL à interroger.

Voir également url() et setUrl().

QNetworkRequest::QNetworkRequest(const QNetworkRequest &other)

Crée une copie de other.

[noexcept] QNetworkRequest::~QNetworkRequest()

Supprime l'objet « QNetworkRequest ».

QVariant QNetworkRequest::attribute(QNetworkRequest::Attribute code, const QVariant &defaultValue = QVariant()) const

Renvoie l'attribut associé au code code. Si l'attribut n'a pas été défini, la fonction renvoie defaultValue.

Remarque : cette fonction n'applique pas les valeurs par défaut répertoriées dans QNetworkRequest::Attribute.

Voir également ` setAttribute()` et ` QNetworkRequest::Attribute`.

[since 6.2] qint64 QNetworkRequest::decompressedSafetyCheckThreshold() const

Renvoie le seuil utilisé pour la détection des « archive bombs ».

Si la taille décompressée d'une réponse est inférieure à cette valeur, Qt se contentera de la décompresser, sans effectuer d'autres vérifications.

Cette fonction a été introduite dans Qt 6.2.

Voir également setDecompressedSafetyCheckThreshold().

bool QNetworkRequest::hasRawHeader(QAnyStringView headerName) const

Renvoie « true » si l'en-tête brut « headerName » est présent dans cette requête réseau.

Remarque : dans les versions de Qt antérieures à la version 6.7, cette fonction n'acceptait que le paramètre « QByteArray ».

Voir également rawHeader() et setRawHeader().

Renvoie la valeur de l'en-tête réseau connu « header » s'il est présent dans cette requête. S'il n'est pas présent, renvoie QVariant() (c'est-à-dire un variant non valide).

Voir également KnownHeaders, rawHeader() et setHeader().

[since 6.8] QHttpHeaders QNetworkRequest::headers() const

Renvoie les en-têtes définis dans cette requête réseau.

Cette fonction a été introduite dans Qt 6.8.

Voir également setHeaders().

[since 6.5] QHttp1Configuration QNetworkRequest::http1Configuration() const

Renvoie les paramètres actuels utilisés par ` QNetworkAccessManager ` pour la connexion HTTP/1 sous-jacente de cette requête.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi setHttp1Configuration.

QHttp2Configuration QNetworkRequest::http2Configuration() const

Renvoie les paramètres actuels utilisés par QNetworkAccessManager pour cette requête et sa connexion HTTP/2 sous-jacente. Il s'agit soit d'une configuration précédemment définie par une application, soit d'une configuration par défaut.

Les valeurs par défaut utilisées par QNetworkAccessManager sont les suivantes :

  • La taille de la fenêtre pour le contrôle de flux au niveau de la connexion est de 2147483647 octets
  • La taille de fenêtre pour le contrôle de flux au niveau du flux est de 2 147 483 64 octets
  • La taille maximale de trame est de 16 384

Par défaut, la fonctionnalité « server push » est désactivée, tandis que la compression Huffman et l’indexation des chaînes de caractères sont activées.

Voir également setHttp2Configuration.

int QNetworkRequest::maximumRedirectsAllowed() const

Renvoie le nombre maximal de redirections autorisées pour cette requête.

Voir également setMaximumRedirectsAllowed().

QObject *QNetworkRequest::originatingObject() const

Renvoie une référence à l'objet qui a lancé cette requête réseau ; renvoie « nullptr » si cette référence n'est pas définie ou si l'objet a été détruit.

Voir également setOriginatingObject().

QString QNetworkRequest::peerVerifyName() const

Renvoie le nom d'hôte défini pour la validation du certificat, tel qu'il a été configuré via setPeerVerifyName. Par défaut, cette fonction renvoie une chaîne vide.

Voir également setPeerVerifyName.

QNetworkRequest::Priority QNetworkRequest::priority() const

Renvoie la priorité de cette requête.

Voir également setPriority().

QByteArray QNetworkRequest::rawHeader(QAnyStringView headerName) const

Renvoie la forme brute de l'en-tête headerName. Si cet en-tête n'existe pas, un QByteArray vide est renvoyé, ce qui peut être impossible à distinguer d'un en-tête présent mais sans contenu (utilisez hasRawHeader() pour vérifier si l'en-tête existe ou non).

Les en-têtes bruts peuvent être définis à l'aide de ` setRawHeader()` ou de ` setHeader()`.

Remarque : dans les versions de Qt antérieures à la version 6.7, cette fonction n'acceptait que l'argument « QByteArray ».

Voir également header() et setRawHeader().

QList<QByteArray> QNetworkRequest::rawHeaderList() const

Renvoie une liste de tous les en-têtes bruts définis dans cette requête réseau. La liste est classée dans l'ordre dans lequel les en-têtes ont été définis.

Voir également hasRawHeader() et rawHeader().

void QNetworkRequest::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)

Définit l'attribut associé au code code sur la valeur value. Si l'attribut est déjà défini, la valeur précédente est ignorée. En particulier, si value correspond à un code QVariant non valide, l'attribut est désactivé.

Voir également attribute() et QNetworkRequest::Attribute.

[since 6.2] void QNetworkRequest::setDecompressedSafetyCheckThreshold(qint64 threshold)

Définit l'threshold e des vérifications de « bombe d'archive ».

Certains algorithmes de compression pris en charge peuvent, à partir d’un fichier compressé de très petite taille, générer un fichier décompressé d’une taille spectaculairement importante. Cela n’est possible que si le contenu décompressé est extrêmement monotone, ce qui est rarement le cas pour de véritables fichiers transmis de bonne foi : les fichiers présentant des taux de compression aussi démesurés sont généralement des charges utiles d’attaques par débordement de tampon ou d’attaques par déni de service (en consommant trop de mémoire). Par conséquent, les fichiers qui, une fois décompressés, atteignent des tailles gigantesques, en particulier s'ils proviennent de fichiers compressés de très petite taille, doivent de préférence être rejetés car soupçonnés d'être des logiciels malveillants.

Si la taille décompressée d’une réponse dépasse ce seuil (par défaut, 10 Mio, soit 10 * 1024 * 1024), Qt vérifiera le taux de compression : s’il est déraisonnablement élevé (40:1 pour GZip et Deflate, ou 100:1 pour Brotli et ZStandard), la réponse sera traitée comme une erreur. Définir le seuil sur -1 désactive cette vérification.

Remarque : cette vérification ne détecte que les réponses présentant des taux de compression anormalement élevés. Elle n’impose pas de limite absolue à la taille totale de la sortie décompressée. Une réponse présentant un taux de compression modéré (par exemple, 39:1 pour GZip) peut, une fois décompressée, atteindre une taille arbitrairement grande sans déclencher la vérification. Les applications communiquant avec des serveurs non fiables doivent surveiller QNetworkReply::bytesAvailable() ou QNetworkReply::downloadProgress() et interrompre les transferts qui dépassent une taille acceptable.

Cette fonction a été introduite dans Qt 6.2.

Voir également decompressedSafetyCheckThreshold().

void QNetworkRequest::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)

Définit la valeur de l'en-tête connu « header » sur « value », en remplaçant tout en-tête précédemment défini. Cette opération définit également l'en-tête HTTP brut équivalent.

Voir également KnownHeaders, setRawHeader() et header().

[since 6.8] void QNetworkRequest::setHeaders(QHttpHeaders &&newHeaders)

Définit les en-têtes suivants : newHeaders dans cette requête réseau, en remplaçant tous les en-têtes précédemment définis.

Si certains en-têtes correspondent à des en-têtes connus, leurs valeurs seront analysées et la forme analysée correspondante sera également définie.

Cette fonction a été introduite dans Qt 6.8.

Voir également headers() et KnownHeaders.

[since 6.8] void QNetworkRequest::setHeaders(const QHttpHeaders &newHeaders)

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

[since 6.5] void QNetworkRequest::setHttp1Configuration(const QHttp1Configuration &configuration)

Définit les paramètres HTTP/1 de la requête à partir de configuration.

Cette fonction a été introduite dans Qt 6.5.

Voir également http1Configuration, QNetworkAccessManager et QHttp1Configuration.

void QNetworkRequest::setHttp2Configuration(const QHttp2Configuration &configuration)

Définit les paramètres HTTP/2 de la requête à partir de configuration.

Remarque : la configuration doit être définie avant d'effectuer une requête.

Remarque : HTTP/2 multiplexe plusieurs flux au sein d'une seule connexion HTTP/2. Cela signifie qu'QNetworkAccessManager utilisera la configuration détectée dans la première requête d'une série de requêtes envoyées au même hôte.

Voir également http2Configuration, QNetworkAccessManager et QHttp2Configuration.

void QNetworkRequest::setMaximumRedirectsAllowed(int maxRedirectsAllowed)

Définit le nombre maximal de redirections autorisées pour cette requête vers maxRedirectsAllowed.

Voir également maximumRedirectsAllowed().

void QNetworkRequest::setOriginatingObject(QObject *object)

Permet de définir une référence à l'object e à l'origine de la requête.

Par exemple, Qt WebKit définit l'objet d'origine comme étant le QWebFrame qui a lancé la requête.

Voir également ` originatingObject()` ().

void QNetworkRequest::setPeerVerifyName(const QString &peerName)

Définit peerName comme nom d'hôte pour la validation du certificat, à la place de celui utilisé pour la connexion TCP.

Voir également peerVerifyName.

void QNetworkRequest::setPriority(QNetworkRequest::Priority priority)

Définissez la priorité de cette requête sur « priority ».

Remarque : la valeur « priority » n'est qu'une indication pour le gestionnaire d'accès réseau. Celui-ci peut choisir de l'utiliser ou non. Actuellement, elle est utilisée pour le protocole HTTP afin de déterminer quelle requête doit être envoyée en premier à un serveur.

Voir également priority().

void QNetworkRequest::setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)

Définit l'headerName de l'en-tête sur la valeur headerValue. Si headerName correspond à un en-tête connu (voir QNetworkRequest::KnownHeaders), le format brut sera analysé et l'en-tête « préparé » correspondant sera également défini.

Par exemple :

request.setRawHeader(QByteArray("Last-Modified"), QByteArray("Sun, 06 Nov 1994 08:49:37 GMT"));

définira également l’en-tête connu LastModifiedHeader comme étant l’objet QDateTime correspondant à la date analysée.

Remarque : définir deux fois le même en-tête remplace le paramétrage précédent. Pour obtenir le comportement de plusieurs en-têtes HTTP portant le même nom, vous devez concaténer les deux valeurs en les séparant par une virgule (« , ») et définir un seul en-tête brut.

Remarque : depuis Qt 6.8, les noms des champs d’en-tête sont normalisés en les convertissant en minuscules.

Voir également KnownHeaders, setHeader(), hasRawHeader() et rawHeader().

void QNetworkRequest::setSslConfiguration(const QSslConfiguration &config)

Définit la configuration SSL de cette requête réseau sur config. Les paramètres concernés sont la clé privée, le certificat local, le protocole TLS (par exemple TLS 1.3), les certificats d'autorité de certification (CA) et les algorithmes de chiffrement que le backend SSL est autorisé à utiliser.

Voir également sslConfiguration() et QSslConfiguration::defaultConfiguration().

[since 6.11] void QNetworkRequest::setTcpKeepAliveIdleTimeBeforeProbes(std::chrono::seconds idle)

Définit la durée pendant laquelle la connexion doit rester inactive avant que le protocole TCP ne commence à envoyer des requêtes de maintien de connexion (keepalive) à l'adresse idle, si la fonctionnalité TCP Keepalive a été activée.

Cette fonction a été introduite dans Qt 6.11.

Voir également tcpKeepAliveIdleTimeBeforeProbes().

[since 6.11] void QNetworkRequest::setTcpKeepAliveIntervalBetweenProbes(std::chrono::seconds interval)

Définit l'intervalle entre chaque requête de maintien de connexion (keepalive) à interval, si la fonctionnalité TCP Keepalive a été activée.

Cette fonction a été introduite dans Qt 6.11.

Voir également tcpKeepAliveIntervalBetweenProbes().

[since 6.11] void QNetworkRequest::setTcpKeepAliveProbeCount(int probes)

Définit le nombre maximal d'probes s « keepalive » que le protocole TCP doit envoyer avant de couper la connexion, si la fonctionnalité TCP Keepalive a été activée.

Cette fonction a été introduite dans Qt 6.11.

Voir également ` tcpKeepAliveProbeCount()`.

void QNetworkRequest::setTransferTimeout(int timeout)

Définit la valeur timeout comme délai d'expiration du transfert, en millisecondes.

Voir également setTransferTimeout(std::chrono::milliseconds), transferTimeout() et transferTimeoutAsDuration().

[since 6.7] void QNetworkRequest::setTransferTimeout(std::chrono::milliseconds duration = DefaultTransferTimeout)

Définit le délai d'duration, au-delà duquel le transfert est interrompu si aucune donnée n'est échangée.

Les transferts sont interrompus si aucun octet n’est transféré avant l’expiration du délai d’attente. La valeur zéro signifie qu’aucun délai d’attente n’est défini. Si aucun argument n’est fourni, le délai d’attente est QNetworkRequest::DefaultTransferTimeout. Si cette fonction n’est pas appelée, le délai d’attente est désactivé et prend la valeur zéro.

Cette fonction a été introduite dans Qt 6.7.

Voir également transferTimeoutAsDuration().

void QNetworkRequest::setUrl(const QUrl &url)

Définit l'URL à laquelle cette requête réseau fait référence comme étant url.

Voir aussi url().

QSslConfiguration QNetworkRequest::sslConfiguration() const

Renvoie la configuration SSL de cette requête réseau. Par défaut, elle est identique à celle renvoyée par la fonction QSslConfiguration::defaultConfiguration().

Voir également setSslConfiguration() et QSslConfiguration::defaultConfiguration().

[noexcept] void QNetworkRequest::swap(QNetworkRequest &other)

Permet d'échanger cette requête réseau contre celle de other. Cette opération est très rapide et ne rencontre jamais d'échec.

[since 6.11] std::chrono::seconds QNetworkRequest::tcpKeepAliveIdleTimeBeforeProbes() const

Renvoie la durée pendant laquelle la connexion doit rester inactive avant que le protocole TCP ne commence à envoyer des requêtes de maintien de connexion (keepalive), si la fonctionnalité TCP Keepalive a été activée.

Cette fonction a été introduite dans Qt 6.11.

Voir également ` setTcpKeepAliveIdleTimeBeforeProbes()`.

[since 6.11] std::chrono::seconds QNetworkRequest::tcpKeepAliveIntervalBetweenProbes() const

Renvoie le délai entre deux requêtes de maintien de connexion, si la fonctionnalité TCP Keepalive a été activée.

Cette fonction a été introduite dans Qt 6.11.

Voir également ` setTcpKeepAliveIntervalBetweenProbes()`.

[since 6.11] int QNetworkRequest::tcpKeepAliveProbeCount() const

Renvoie le nombre maximal de requêtes de maintien de connexion (keepalive) que le protocole TCP doit envoyer avant de fermer la connexion, si la fonctionnalité TCP Keepalive a été activée.

Cette fonction a été introduite dans Qt 6.11.

Voir également ` setTcpKeepAliveProbeCount()`.

int QNetworkRequest::transferTimeout() const

Renvoie le délai d'expiration utilisé pour les transferts, en millisecondes.

Si transferTimeoutAsDuration().count() ne peut pas être représenté sous la forme int, cette fonction renvoie à la place INT_MAX/INT_MIN.

Voir également setTransferTimeout() et transferTimeoutAsDuration().

[since 6.7] std::chrono::milliseconds QNetworkRequest::transferTimeoutAsDuration() const

Renvoie la durée du délai d'expiration au-delà duquel le transfert est interrompu si aucune donnée n'est échangée.

La durée par défaut est zéro, ce qui signifie que le délai d'expiration n'est pas utilisé.

Cette fonction a été introduite dans Qt 6.7.

Voir également setTransferTimeout(std::chrono::milliseconds).

QUrl QNetworkRequest::url() const

Renvoie l'URL à laquelle se réfère cette requête réseau.

Voir également setUrl().

bool QNetworkRequest::operator!=(const QNetworkRequest &other) const

Renvoie « false » si cet objet n'est pas identique à « other ».

Voir également operator==().

QNetworkRequest &QNetworkRequest::operator=(const QNetworkRequest &other)

Crée une copie de other

bool QNetworkRequest::operator==(const QNetworkRequest &other) const

Renvoie « true » si cet objet est identique à « other » (c'est-à-dire s'ils ont la même URL, les mêmes en-têtes et les mêmes paramètres de métadonnées).

Voir également operator!=().

Documentation sur les variables membres

const std::chrono::std::chrono::milliseconds QNetworkRequest::DefaultTransferTimeout

Le délai d'expiration du transfert est de QNetworkRequest::TransferTimeoutConstant millisecondes. Utilisé lorsque la fonction setTransferTimeout() est appelée sans argument.

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