Sur cette page

QNetworkReply Class

La classe QNetworkReply contient les données et les en-têtes d'une requête envoyée à l'adresse QNetworkAccessManager. Plus...

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

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, TimeoutError, …, UnknownServerError }
RawHeaderPair

Fonctions publiques

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

Fonctions publiques réimplémentées

virtual void close() override
virtual bool isSequential() const override

Emplacements publics

virtual void abort() = 0
virtual void ignoreSslErrors()

Signaux

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)

Fonctions protégées

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

Fonctions protégées réimplémentées

virtual qint64 writeData(const char *data, qint64 len) override

Description détaillée

La classe QNetworkReply contient les données et les métadonnées relatives à une requête envoyée à l'adresse QNetworkAccessManager. Comme QNetworkRequest, elle contient une URL et des en-têtes (sous forme brute et analysée), des informations sur l'état de la réponse et le contenu de la réponse elle-même.

QNetworkReply est un accès séquentiel QIODevice, ce qui signifie qu'une fois que les données sont lues dans l'objet, elles ne sont plus conservées par le dispositif. Il incombe donc à l'application de conserver ces données si elle en a besoin. Chaque fois que des données supplémentaires sont reçues du réseau et traitées, le signal readyRead() est émis.

Le signal downloadProgress() est également émis lors de la réception de données, mais le nombre d'octets qu'il contient peut ne pas représenter les octets réellement reçus, si une transformation est effectuée sur le contenu (par exemple, décompression et suppression de l'overhead du protocole).

Même si QNetworkReply est un QIODevice connecté au contenu de la réponse, il émet également le signal uploadProgress(), qui indique la progression du téléchargement pour les opérations qui ont un tel contenu.

Note : Ne pas supprimer l'objet dans le slot connecté au signal errorOccurred() ou finished(). Utilisez deleteLater().

Voir également QNetworkRequest et QNetworkAccessManager.

Documentation sur les types de membres

enum QNetworkReply::NetworkError

Indique toutes les conditions d'erreur possibles constatées lors du traitement de la demande.

ConstanteValeurDescription de l'erreur
QNetworkReply::NoError0aucune condition d'erreur.

Remarque : lorsque le protocole HTTP renvoie une redirection, aucune erreur n'est signalée. Vous pouvez vérifier s'il y a une redirection avec l'attribut QNetworkRequest::RedirectionTargetAttribute.

ConstanteValeurDescription de l'erreur
QNetworkReply::ConnectionRefusedError1le serveur distant a refusé la connexion (le serveur n'accepte pas les demandes)
QNetworkReply::RemoteHostClosedError2le serveur distant a fermé la connexion prématurément, avant que la totalité de la réponse n'ait été reçue et traitée
QNetworkReply::HostNotFoundError3le nom de l'hôte distant n'a pas été trouvé (nom d'hôte invalide)
QNetworkReply::TimeoutError4la connexion au serveur distant a expiré
QNetworkReply::OperationCanceledError5l'opération a été annulée par des appels à abort() ou close() avant qu'elle ne soit terminée.
QNetworkReply::SslHandshakeFailedError6la prise de contact SSL/TLS a échoué et le canal crypté n'a pas pu être établi. Le signal sslErrors() aurait dû être émis.
QNetworkReply::TemporaryNetworkFailureError7la connexion a été interrompue en raison d'une déconnexion du réseau, mais le système a initié une itinérance vers un autre point d'accès. La demande doit être soumise à nouveau et sera traitée dès que la connexion sera rétablie.
QNetworkReply::NetworkSessionFailedError8la connexion a été interrompue en raison d'une déconnexion du réseau ou d'un échec du démarrage du réseau.
QNetworkReply::BackgroundRequestNotAllowedError9la demande en arrière-plan n'est pas autorisée actuellement en raison de la politique de la plate-forme.
QNetworkReply::TooManyRedirectsError10lors du suivi des redirections, la limite maximale a été atteinte. La limite est par défaut fixée à 50 ou définie par QNetworkRequest::setMaxRedirectsAllowed(). (Cette valeur a été introduite dans la version 5.6.)
QNetworkReply::InsecureRedirectError11en suivant les redirections, l'API d'accès au réseau a détecté une redirection d'un protocole crypté (https) vers un protocole non crypté (http). (Cette valeur a été introduite dans la version 5.6.)
QNetworkReply::ProxyConnectionRefusedError101la connexion au serveur proxy a été refusée (le serveur proxy n'accepte pas les demandes)
QNetworkReply::ProxyConnectionClosedError102le serveur proxy a fermé la connexion prématurément, avant que la réponse complète n'ait été reçue et traitée
QNetworkReply::ProxyNotFoundError103le nom d'hôte du proxy n'a pas été trouvé (nom d'hôte du proxy invalide)
QNetworkReply::ProxyTimeoutError104la connexion au proxy a expiré ou le proxy n'a pas répondu à temps à la demande envoyée
QNetworkReply::ProxyAuthenticationRequiredError105le proxy exige une authentification pour honorer la demande, mais n'a pas accepté les informations d'identification proposées (le cas échéant)
QNetworkReply::ContentAccessDenied201l'accès au contenu distant a été refusé (similaire à l'erreur HTTP 403)
QNetworkReply::ContentOperationNotPermittedError202l'opération demandée sur le contenu distant n'est pas autorisée
QNetworkReply::ContentNotFoundError203le contenu distant n'a pas été trouvé sur le serveur (similaire à l'erreur HTTP 404)
QNetworkReply::AuthenticationRequiredError204le serveur distant nécessite une authentification pour servir le contenu, mais les informations d'identification fournies n'ont pas été acceptées (le cas échéant)
QNetworkReply::ContentReSendError205la demande a dû être renvoyée, mais cela a échoué, par exemple parce que les données téléchargées n'ont pas pu être lues une deuxième fois.
QNetworkReply::ContentConflictError206la demande n'a pas pu être traitée en raison d'un conflit avec l'état actuel de la ressource.
QNetworkReply::ContentGoneError207la ressource demandée n'est plus disponible sur le serveur.
QNetworkReply::InternalServerError401le serveur a rencontré une situation inattendue qui l'a empêché de répondre à la demande.
QNetworkReply::OperationNotImplementedError402le serveur ne prend pas en charge la fonctionnalité requise pour répondre à la demande.
QNetworkReply::ServiceUnavailableError403le serveur n'est pas en mesure de traiter la demande pour le moment.
QNetworkReply::ProtocolUnknownError301l'API d'accès au réseau ne peut pas honorer la demande car le protocole n'est pas connu
QNetworkReply::ProtocolInvalidOperationError302l'opération demandée n'est pas valide pour ce protocole
QNetworkReply::UnknownNetworkError99une erreur inconnue liée au réseau a été détectée
QNetworkReply::UnknownProxyError199une erreur inconnue liée au proxy a été détectée
QNetworkReply::UnknownContentError299une erreur inconnue liée au contenu distant a été détectée
QNetworkReply::ProtocolFailure399une défaillance du protocole a été détectée (erreur d'analyse, réponses invalides ou inattendues, etc.)
QNetworkReply::UnknownServerError499une erreur inconnue liée à la réponse du serveur a été détectée.

Voir également error() et errorOccurred().

QNetworkReply::RawHeaderPair

RawHeaderPair est une std::paire<QByteArray, QByteArray> où le premier QByteArray est le nom de l'en-tête et le second est l'en-tête.

Documentation des fonctions membres

[explicit protected] QNetworkReply::QNetworkReply(QObject *parent = nullptr)

Crée un objet QNetworkReply avec le parent parent.

Vous ne pouvez pas instancier directement les objets QNetworkReply. Utilisez les fonctions QNetworkAccessManager pour le faire.

[virtual noexcept] QNetworkReply::~QNetworkReply()

Élimine cette réponse et libère toutes les ressources qui y sont associées. Si des connexions réseau sont encore ouvertes, elles seront fermées.

Voir aussi abort() et close().

[pure virtual slot] void QNetworkReply::abort()

Interrompt immédiatement l'opération et ferme toutes les connexions réseau encore ouvertes. Les téléchargements en cours sont également interrompus.

Le signal finished() est également émis.

Voir aussi close() et finished().

QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const

Renvoie l'attribut associé au code code. Si l'attribut n'a pas été défini, la fonction renvoie une valeur invalide QVariant (type QMetaType::UnknownType).

Vous pouvez vous attendre à ce que les valeurs par défaut énumérées à l'adresse QNetworkRequest::Attribute soient appliquées aux valeurs renvoyées par cette fonction.

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

[override virtual] void QNetworkReply::close()

Réimplémente : QIODevice::close().

Ferme ce périphérique à la lecture. Les données non lues sont supprimées, mais les ressources réseau ne sont pas supprimées tant qu'elles ne sont pas terminées. En particulier, si un téléchargement est en cours, il se poursuivra jusqu'à ce qu'il soit terminé.

Le signal finished() est émis lorsque toutes les opérations sont terminées et que les ressources réseau sont libérées.

Voir également abort() et finished().

[signal] void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)

Ce signal est émis pour indiquer la progression de la partie téléchargement de cette requête réseau, s'il y en a une. S'il n'y a pas de téléchargement associé à cette demande, ce signal sera émis une fois avec 0 comme valeur des paramètres bytesReceived et bytesTotal.

Le paramètre bytesReceived indique le nombre d'octets reçus, tandis que bytesTotal indique le nombre total d'octets à télécharger. Si le nombre d'octets à télécharger n'est pas connu, la valeur de bytesTotal sera -1.

Le téléchargement est terminé lorsque bytesReceived est égal à bytesTotal. À ce moment-là, bytesTotal ne sera pas -1.

Notez que les valeurs de bytesReceived et bytesTotal peuvent être différentes de size(), du nombre total d'octets obtenu par read() ou readAll(), ou de la valeur de l'en-tête (ContentLengthHeader). La raison en est qu'il peut y avoir une surcharge de protocole ou que les données peuvent être compressées pendant le téléchargement.

Voir également uploadProgress() et bytesAvailable().

[signal] void QNetworkReply::encrypted()

Ce signal est émis lorsqu'une session SSL/TLS a terminé avec succès la poignée de main initiale. À ce stade, aucune donnée utilisateur n'a été transmise. Ce signal peut être utilisé pour effectuer des vérifications supplémentaires sur la chaîne de certificats, par exemple pour avertir les utilisateurs que le certificat d'un site web a changé. Si la réponse ne correspond pas aux critères attendus, elle doit être interrompue en appelant QNetworkReply::abort() par un slot connecté à ce signal. La configuration SSL utilisée peut être inspectée à l'aide de la méthode QNetworkReply::sslConfiguration().

En interne, QNetworkAccessManager peut ouvrir plusieurs connexions à un serveur, afin de lui permettre de traiter les demandes en parallèle. Ces connexions peuvent être réutilisées, ce qui signifie que le signal encrypted() ne sera pas émis. Cela signifie que vous n'êtes assuré de recevoir ce signal que pour la première connexion à un site au cours de la durée de vie du site QNetworkAccessManager.

Voir également QSslSocket::encrypted() et QNetworkAccessManager::encrypted().

QNetworkReply::NetworkError QNetworkReply::error() const

Renvoie l'erreur qui a été trouvée pendant le traitement de cette demande. Si aucune erreur n'a été trouvée, elle renvoie NoError.

Voir aussi setError().

[signal] void QNetworkReply::errorOccurred(QNetworkReply::NetworkError code)

Ce signal est émis lorsque la réponse détecte une erreur de traitement. Le signal finished() suivra probablement, indiquant que la connexion est terminée.

Le paramètre code contient le code de l'erreur détectée. Appelez errorString() pour obtenir une représentation textuelle de la condition d'erreur.

Note : Ne supprimez pas l'objet dans le slot connecté à ce signal. Utilisez deleteLater().

Voir également error() et errorString().

[signal] void QNetworkReply::finished()

Ce signal est émis lorsque le traitement de la réponse est terminé. Après l'émission de ce signal, il n'y aura plus de mise à jour des données ou des métadonnées de la réponse.

À moins que close() ou abort() n'ait été appelé, la réponse sera toujours ouverte à la lecture, de sorte que les données pourront être récupérées par des appels à read() ou readAll(). En particulier, si aucun appel à read() n'a été effectué à la suite de readyRead(), un appel à readAll() permettra de récupérer l'intégralité du contenu dans un message QByteArray.

Ce signal est émis en tandem avec QNetworkAccessManager::finished() où le paramètre de réponse de ce signal est cet objet.

Remarque : ne supprimez pas l'objet dans le slot connecté à ce signal. Utilisez deleteLater().

Vous pouvez également utiliser isFinished() pour vérifier si une action QNetworkReply est terminée avant même de recevoir le signal finished().

Voir aussi setFinished(), QNetworkAccessManager::finished() et isFinished().

bool QNetworkReply::hasRawHeader(QAnyStringView headerName) const

Renvoie true si l'en-tête brut du nom headerName a été envoyé par le serveur distant.

Remarque : dans les versions de Qt antérieures à la version 6.7, cette fonction ne prenait que QByteArray.

Voir aussi rawHeader().

Renvoie la valeur de l'en-tête connu header, si cet en-tête a été envoyé par le serveur distant. Si l'en-tête n'a pas été envoyé, il renvoie une valeur invalide QVariant.

Voir aussi rawHeader(), setHeader() et QNetworkRequest::header().

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

Renvoie les en-têtes qui ont été envoyés par le serveur distant.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi setHeaders(), QNetworkRequest::setAttribute(), et QNetworkRequest::Attribute.

[virtual slot] void QNetworkReply::ignoreSslErrors()

Si cette fonction est appelée, les erreurs SSL liées à la connexion réseau seront ignorées, y compris les erreurs de validation de certificat.

Attention : Veillez à toujours laisser l'utilisateur examiner les erreurs signalées par le signal sslErrors(), et n'appelez cette méthode qu'après confirmation par l'utilisateur que tout se passe bien. En cas d'erreurs inattendues, la réponse doit être interrompue. Appeler cette méthode sans inspecter les erreurs réelles posera très probablement un risque de sécurité pour votre application. Utilisez-la avec beaucoup de précautions !

Cette fonction peut être appelée à partir du slot connecté au signal sslErrors(), qui indique quelles erreurs ont été trouvées.

Note : Si HTTP Strict Transport Security est activé pour QNetworkAccessManager, cette fonction n'a aucun effet.

Note : Ce slot est surchargé. Pour se connecter à ce slot :

// 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(); });
Pour plus d'exemples et d'approches, voir se connecter à des slots surchargés.

Voir aussi sslConfiguration(), sslErrors(), et QSslSocket::ignoreSslErrors().

void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)

Si cette fonction est appelée, les erreurs SSL indiquées dans errors seront ignorées.

Remarque : comme la plupart des erreurs SSL sont associées à un certificat, vous devez, pour la plupart d'entre elles, définir le certificat attendu auquel l'erreur SSL est liée. Si, par exemple, vous voulez envoyer une requête à un serveur qui utilise un certificat auto-signé, considérez l'extrait suivant :

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.

Plusieurs appels à cette fonction remplaceront la liste des erreurs transmises lors des appels précédents. Vous pouvez effacer la liste des erreurs que vous souhaitez ignorer en appelant cette fonction avec une liste vide.

Remarque : si le protocole HTTP Strict Transport Security est activé pour QNetworkAccessManager, cette fonction n'a aucun effet.

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

Voir aussi sslConfiguration(), sslErrors(), QSslSocket::ignoreSslErrors() et QNetworkAccessManager::setStrictTransportSecurityEnabled().

[virtual protected] void QNetworkReply::ignoreSslErrorsImplementation(const QList<QSslError> &errors)

Cette méthode virtuelle est fournie pour permettre de surcharger le comportement de ignoreSslErrors(). ignoreSslErrors() est une enveloppe publique pour cette méthode. errors contient les erreurs que l'utilisateur souhaite ignorer.

Voir également ignoreSslErrors().

bool QNetworkReply::isFinished() const

Renvoie true lorsque la réponse est terminée ou a été interrompue.

Voir aussi isRunning().

bool QNetworkReply::isRunning() const

Renvoie true lorsque la demande est encore en cours de traitement et que la réponse n'est pas encore terminée ou n'a pas encore été interrompue.

Voir aussi isFinished().

[override virtual] bool QNetworkReply::isSequential() const

Réimplémente : QIODevice::isSequential() const.

QNetworkAccessManager *QNetworkReply::manager() const

Renvoie l'adresse QNetworkAccessManager qui a été utilisée pour créer cet objet QNetworkReply. Initialement, il s'agit également de l'objet parent.

[signal] void QNetworkReply::metaDataChanged()

Ce signal est émis chaque fois que les métadonnées de cette réponse changent. Les métadonnées sont toutes les informations qui ne sont pas le contenu (données) lui-même, y compris les en-têtes de réseau. Dans la majorité des cas, les métadonnées seront entièrement connues au moment où le premier octet de données est reçu. Toutefois, il est possible de recevoir des mises à jour des en-têtes ou d'autres métadonnées pendant le traitement des données.

Voir également header(), rawHeaderList(), rawHeader() et hasRawHeader().

QNetworkAccessManager::Operation QNetworkReply::operation() const

Renvoie l'opération qui a été postée pour cette réponse.

Voir aussi setOperation().

[signal] void QNetworkReply::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)

Ce signal est émis si la poignée de main SSL/TLS négocie une suite de chiffrement PSK et qu'une authentification PSK est donc nécessaire.

Lors de l'utilisation de la PSK, le client doit envoyer au serveur une identité valide et une clé pré-partagée valide, afin que la poignée de main SSL puisse se poursuivre. Les applications peuvent fournir ces informations dans un slot connecté à ce signal, en remplissant l'objet authenticator en fonction de leurs besoins.

Remarque : le fait d'ignorer ce signal ou de ne pas fournir les informations d'identification requises entraîne l'échec de la poignée de main et, par conséquent, l'interruption de la connexion.

Remarque : L'objet authenticator appartient à la réponse et ne doit pas être supprimé par l'application.

Voir également QSslPreSharedKeyAuthenticator.

QByteArray QNetworkReply::rawHeader(QAnyStringView headerName) const

Renvoie le contenu brut de l'en-tête headerName tel qu'il est envoyé par le serveur distant. S'il n'y a pas d'en-tête, il renvoie un tableau d'octets vide, qui peut être impossible à distinguer d'un en-tête vide. Utilisez hasRawHeader() pour vérifier si le serveur a envoyé un tel champ d'en-tête.

Remarque : dans les versions de Qt antérieures à la version 6.7, cette fonction ne prenait que QByteArray.

Voir aussi setRawHeader(), hasRawHeader() et header().

QList<QByteArray> QNetworkReply::rawHeaderList() const

Renvoie une liste des champs d'en-tête qui ont été envoyés par le serveur distant, dans l'ordre où ils ont été envoyés. Les en-têtes en double sont ignorés.

const QList<QNetworkReply::RawHeaderPair> &QNetworkReply::rawHeaderPairs() const

Renvoie une liste de paires d'en-têtes bruts.

qint64 QNetworkReply::readBufferSize() const

Renvoie la taille du tampon de lecture, en octets.

Voir aussi setReadBufferSize().

[signal] void QNetworkReply::redirectAllowed()

Lorsque le code client qui traite le signal redirected() a vérifié la nouvelle URL, il émet ce signal pour autoriser la redirection. Ce protocole s'applique aux requêtes réseau dont la politique de redirection est définie sur QNetworkRequest::UserVerifiedRedirectPolicy

Voir également QNetworkRequest::UserVerifiedRedirectPolicy, QNetworkAccessManager::setRedirectPolicy() et QNetworkRequest::RedirectPolicyAttribute.

[signal] void QNetworkReply::redirected(const QUrl &url)

Ce signal est émis si le paramètre QNetworkRequest::ManualRedirectPolicy n'a pas été défini dans la requête et que le serveur a répondu par un statut 3xx (spécifiquement 301, 302, 303, 305, 307 ou 308) avec une url valide dans l'en-tête location, indiquant une redirection HTTP. Le paramètre url contient la nouvelle url de redirection renvoyée par le serveur dans l'en-tête location.

Voir aussi QNetworkRequest::RedirectPolicy.

QNetworkRequest QNetworkReply::request() const

Renvoie la demande qui a été postée pour cette réponse. Notez en particulier que l'URL de la demande peut être différente de celle de la réponse.

Voir aussi QNetworkRequest::url(), url() et setRequest().

[signal, since 6.3] void QNetworkReply::requestSent()

Ce signal est émis une ou plusieurs fois lorsque la demande a été envoyée. Utile pour une gestion personnalisée de la progression ou du délai d'attente.

Cette fonction a été introduite dans Qt 6.3.

Voir aussi metaDataChanged() et socketStartedConnecting().

[protected] void QNetworkReply::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)

Attribue à l'attribut code la valeur value. Si code a été défini précédemment, il sera remplacé. Si value est un QVariant invalide, l'attribut sera désactivé.

Voir aussi attribute() et QNetworkRequest::setAttribute().

[protected] void QNetworkReply::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)

Définit la condition d'erreur comme étant errorCode. Le message lisible par l'homme est défini par errorString.

L'appel à setError() n'émet pas le signal errorOccurred(QNetworkReply::NetworkError).

Voir aussi error() et errorString().

[protected] void QNetworkReply::setFinished(bool finished)

Définit la réponse comme finished.

Une fois ce paramètre défini, les données de la réponse ne doivent pas être modifiées.

Voir aussi finished() et isFinished().

[protected] void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)

Fixe l'en-tête connu header à la valeur value. La forme brute correspondante de l'en-tête sera également définie.

Voir aussi header(), setRawHeader() et QNetworkRequest::setHeader().

[protected, since 6.8] void QNetworkReply::setHeaders(const QHttpHeaders &newHeaders)

Définit newHeaders comme en-tête dans cette réponse du réseau, en remplaçant tout en-tête précédemment défini.

Si certains en-têtes correspondent aux en-têtes connus, ils seront analysés et la forme analysée correspondante sera également définie.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi headers() et QNetworkRequest::KnownHeaders.

[protected, since 6.8] void QNetworkReply::setHeaders(QHttpHeaders &&newHeaders)

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

Cette fonction a été introduite dans Qt 6.8.

[protected] void QNetworkReply::setOperation(QNetworkAccessManager::Operation operation)

Définit l'opération associée à cet objet comme étant operation. Cette valeur sera renvoyée par operation().

Remarque : l'opération doit être définie lors de la création de l'objet et ne doit plus être modifiée.

Voir également operation() et setRequest().

[protected] void QNetworkReply::setRawHeader(const QByteArray &headerName, const QByteArray &value)

Fixe la valeur de l'en-tête brut headerName à value. Si headerName a été défini précédemment, il est remplacé. Plusieurs en-têtes HTTP portant le même nom sont fonctionnellement équivalents à un seul en-tête dont les valeurs sont concaténées et séparées par des virgules.

Si headerName correspond à un en-tête connu, la valeur value sera analysée et la forme analysée correspondante sera également définie.

Voir aussi rawHeader(), header(), setHeader() et QNetworkRequest::setRawHeader().

[virtual] void QNetworkReply::setReadBufferSize(qint64 size)

Fixe la taille du tampon de lecture à size octets. Le tampon de lecture est le tampon qui contient les données téléchargées sur le réseau, avant qu'elles ne soient lues à l'aide de QIODevice::read(). En fixant la taille du tampon à 0, la taille du tampon sera illimitée.

QNetworkReply Si la taille de la mémoire tampon n'est pas limitée, bytesAvailable() essaiera d'arrêter la lecture à partir du réseau une fois que cette mémoire tampon sera pleine (c'est-à-dire si () renvoie size ou plus), ce qui entraînera également une réduction du téléchargement. Si la taille de la mémoire tampon n'est pas limitée, QNetworkReply essaiera de télécharger aussi vite que possible à partir du réseau.

Contrairement à QAbstractSocket::setReadBufferSize(), QNetworkReply ne peut pas garantir la précision de la taille du tampon de lecture. En d'autres termes, bytesAvailable() peut renvoyer plus que size.

Voir également readBufferSize().

[protected] void QNetworkReply::setRequest(const QNetworkRequest &request)

Définit la demande associée à cet objet comme étant request. Cette valeur sera renvoyée par request().

Remarque : la demande doit être définie lors de la création de l'objet et ne doit plus être modifiée.

Voir également request() et setOperation().

void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)

Définit la configuration SSL pour la connexion réseau associée à cette demande, si possible, comme étant celle de config.

Voir aussi sslConfiguration().

[virtual protected] void QNetworkReply::setSslConfigurationImplementation(const QSslConfiguration &configuration)

Cette méthode virtuelle est fournie pour permettre de surcharger le comportement de setSslConfiguration(). setSslConfiguration() est une enveloppe publique pour cette méthode. Si vous surchargez cette méthode, utilisez configuration pour définir la configuration SSL.

Voir aussi sslConfigurationImplementation() et setSslConfiguration().

[protected] void QNetworkReply::setUrl(const QUrl &url)

Définit l'URL en cours de traitement comme étant url. Normalement, l'URL correspond à celle de la requête qui a été postée, mais pour diverses raisons, elle peut être différente (par exemple, un chemin d'accès à un fichier rendu absolu ou canonique).

Voir aussi url(), request() et QNetworkRequest::url().

[protected, since 6.8] void QNetworkReply::setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)

Fixe la valeur de l'en-tête name à value. Si name a été défini précédemment, il est remplacé.

Cette fonction a été introduite dans Qt 6.8.

[signal, since 6.3] void QNetworkReply::socketStartedConnecting()

Ce signal est émis 0 fois ou plus, lorsque la socket se connecte, avant d'envoyer la requête. Utile pour une gestion personnalisée de la progression ou du délai d'attente.

Cette fonction a été introduite dans Qt 6.3.

Voir aussi metaDataChanged() et requestSent().

QSslConfiguration QNetworkReply::sslConfiguration() const

Renvoie la configuration et l'état SSL associés à cette réponse, si SSL a été utilisé. Il contiendra le certificat du serveur distant, sa chaîne de certificats menant à l'autorité de certification, ainsi que les algorithmes de chiffrement utilisés.

Le certificat de l'homologue et sa chaîne de certificats seront connus au moment où sslErrors() sera émis, s'il est émis.

Voir aussi setSslConfiguration().

[virtual protected] void QNetworkReply::sslConfigurationImplementation(QSslConfiguration &configuration) const

Cette méthode virtuelle est fournie pour permettre de surcharger le comportement de sslConfiguration(). sslConfiguration() est une enveloppe publique pour cette méthode. La configuration sera renvoyée à configuration.

Voir aussi setSslConfigurationImplementation() et sslConfiguration().

[signal] void QNetworkReply::sslErrors(const QList<QSslError> &errors)

Ce signal est émis si la session SSL/TLS a rencontré des erreurs lors de la configuration, y compris des erreurs de vérification de certificat. Le paramètre errors contient la liste des erreurs.

Pour indiquer que les erreurs ne sont pas fatales et que la connexion doit se poursuivre, la fonction ignoreSslErrors() doit être appelée à partir du slot connecté à ce signal. Si elle n'est pas appelée, la session SSL sera interrompue avant qu'aucune donnée ne soit échangée (y compris l'URL).

Ce signal peut être utilisé pour afficher un message d'erreur à l'utilisateur indiquant que la sécurité peut être compromise et pour afficher les paramètres SSL (voir sslConfiguration() pour les obtenir). Si l'utilisateur décide de continuer après avoir analysé le certificat distant, la fente doit appeler ignoreSslErrors().

Voir aussi QSslSocket::sslErrors(), QNetworkAccessManager::sslErrors(), sslConfiguration() et ignoreSslErrors().

[signal] void QNetworkReply::uploadProgress(qint64 bytesSent, qint64 bytesTotal)

Ce signal est émis pour indiquer la progression de la partie téléchargement de cette demande réseau, s'il y en a une. Si aucun téléchargement n'est associé à cette demande, ce signal n'est pas émis.

Le paramètre bytesSent indique le nombre d'octets téléchargés, tandis que bytesTotal indique le nombre total d'octets à télécharger. Si le nombre d'octets à télécharger n'a pas pu être déterminé, bytesTotal sera égal à -1.

Le téléchargement est terminé lorsque bytesSent est égal à bytesTotal. À ce moment-là, bytesTotal ne vaudra pas -1.

Voir aussi downloadProgress().

QUrl QNetworkReply::url() const

Renvoie l'URL du contenu téléchargé ou téléversé. Notez que l'URL peut être différente de celle de la demande initiale. Si des redirections ont été activées dans la demande, cette fonction renvoie l'URL actuelle à laquelle l'API réseau accède, c'est-à-dire l'URL de la ressource vers laquelle la demande a été redirigée.

Voir aussi request(), setUrl(), QNetworkRequest::url(), et redirected().

[override virtual protected] qint64 QNetworkReply::writeData(const char *data, qint64 len)

Réimplémente : 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.