QNetworkProxyFactory Class
La classe `QNetworkProxyFactory` permet une sélection précise des proxys. En savoir plus...
| En-tête : | #include <QNetworkProxyFactory> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
- Liste de tous les membres, y compris les membres hérités
- QNetworkProxyFactory fait partie de l'API de programmation réseau.
Fonctions publiques
| QNetworkProxyFactory() | |
| virtual | ~QNetworkProxyFactory() |
| virtual QList<QNetworkProxy> | queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()) = 0 |
Membres publics statiques
| QList<QNetworkProxy> | proxyForQuery(const QNetworkProxyQuery &query) |
| void | setApplicationProxyFactory(QNetworkProxyFactory *factory) |
| void | setUseSystemConfiguration(bool enable) |
| QList<QNetworkProxy> | systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery()) |
| bool | usesSystemConfiguration() |
Description détaillée
QNetworkProxyFactory est une extension de ` QNetworkProxy`, permettant aux applications d'exercer un contrôle plus fin sur les serveurs proxy utilisés, en fonction du socket qui sollicite le proxy. Cela permet à une application d'appliquer différents paramètres, en fonction du protocole ou du nom d'hôte de destination, par exemple.
QNetworkProxyFactory peut être défini globalement pour une application ; dans ce cas, il remplacera tous les proxys globaux définis avec QNetworkProxy::setApplicationProxy(). S’il est défini globalement, tous les sockets créés avec Qt interrogeront la fabrique pour déterminer le proxy à utiliser.
Une fabrique peut également être définie dans certains frameworks prenant en charge plusieurs connexions, tels que ` QNetworkAccessManager`. Lorsqu’elle est définie sur un tel objet, la fabrique ne sera interrogée que pour les sockets créées par ce framework.
Proxys système
Vous pouvez configurer une fabrique pour qu’elle utilise les paramètres du proxy système. Appelez la fonction setUseSystemConfiguration() avec la valeur true pour activer ce comportement, ou false pour le désactiver.
De même, vous pouvez utiliser une fabrique pour adresser des requêtes directement au proxy système en appelant sa fonction ` systemProxyForQuery()`.
Avertissement : en fonction de la configuration du système de l'utilisateur, l'utilisation des fonctionnalités du proxy système sur certaines plateformes peut être soumise à des restrictions. La documentation relative à la fonction ` systemProxyForQuery()` contient une liste de ces restrictions pour les plateformes concernées.
Documentation sur les fonctions membres
QNetworkProxyFactory::QNetworkProxyFactory()
Crée un objet QNetworkProxyFactory.
QNetworkProxyFactory étant une classe abstraite, vous ne pouvez pas créer directement d'objets de type QNetworkProxyFactory.
[virtual noexcept] QNetworkProxyFactory::~QNetworkProxyFactory()
Supprime l'objet « QNetworkProxyFactory ».
[static] QList<QNetworkProxy> QNetworkProxyFactory::proxyForQuery(const QNetworkProxyQuery &query)
Cette fonction prend en paramètre la requête query, analyse les détails relatifs au type de socket ou de requête, puis renvoie une liste d'objets QNetworkProxy indiquant les serveurs proxy à utiliser, par ordre de préférence.
[pure virtual] QList<QNetworkProxy> QNetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery())
Cette fonction prend en paramètre la requête query, analyse les détails relatifs au type de socket ou de requête et renvoie une liste d'objets QNetworkProxy indiquant les serveurs proxy à utiliser, par ordre de préférence.
Lors de la réimplémentation de cette classe, veillez à renvoyer au moins un élément.
Si vous ne parvenez pas à déterminer une meilleure alternative de proxy, utilisez QNetworkProxy::DefaultProxy, qui indique au code recherchant un proxy d’utiliser une alternative de niveau supérieur. Par exemple, si cette fabrique est définie sur un objet QNetworkAccessManager, DefaultProxy lui indiquera d’interroger les paramètres de proxy au niveau de l’application.
Si cette fabrique est définie comme fabrique de proxy de l’application, DefaultProxy et NoProxy auront la même signification.
[static] void QNetworkProxyFactory::setApplicationProxyFactory(QNetworkProxyFactory *factory)
Définit le générateur de proxy à l'échelle de l'application sur factory. Cette fonction prendra possession de cet objet et le supprimera si nécessaire.
Le proxy à l’échelle de l’application est utilisé en dernier recours lorsque toutes les autres requêtes de sélection de proxy ont renvoyé ` QNetworkProxy::DefaultProxy`. Par exemple, les objets ` QTcpSocket ` peuvent avoir un proxy défini à l’aide de `QTcpSocket::setProxy`, mais si aucun n’est défini, la classe de fabrique de proxy définie avec cette fonction sera interrogée.
Si vous définissez une fabrique de proxys à l’aide de cette fonction, tous les proxys au niveau de l’application définis via ` QNetworkProxy::setApplicationProxy ` seront remplacés, et ` usesSystemConfiguration()` renverra ` false`.
Voir également QNetworkProxy::setApplicationProxy(), QAbstractSocket::proxy() et QAbstractSocket::setProxy().
[static] void QNetworkProxyFactory::setUseSystemConfiguration(bool enable)
Active l'utilisation des paramètres de proxy spécifiques à la plateforme, et uniquement ceux-ci. Voir systemProxyForQuery() pour plus d'informations.
L'appel de cette fonction avec enable défini sur true réinitialise tout proxy ou QNetworkProxyFactory déjà configuré.
Remarque : consultez la documentation relative à la fonction systemProxyForQuery() pour obtenir la liste des limitations liées à l’utilisation des proxys système.
[static] QList<QNetworkProxy> QNetworkProxyFactory::systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery())
Cette fonction prend en paramètre la requête query, analyse les détails relatifs au type de socket ou de requête, puis renvoie une liste d’objets ` QNetworkProxy ` indiquant les serveurs proxy à utiliser, par ordre de préférence.
Cette fonction peut être utilisée pour déterminer les paramètres de proxy spécifiques à la plate-forme. Elle utilise les bibliothèques fournies par le système d'exploitation pour déterminer le proxy d'une connexion donnée, si de telles bibliothèques existent. Dans le cas contraire, cette fonction renvoie simplement un objet ` QNetworkProxy ` de type ` QNetworkProxy::NoProxy`.
Sous Windows, cette fonction utilise les fonctions de la DLL WinHTTP. Malgré son nom, Microsoft recommande de l’utiliser pour toutes les applications nécessitant des connexions réseau, et pas uniquement pour le protocole HTTP. Elle respectera les paramètres de proxy définis dans le registre à l’aide de l’outil proxycfg.exe. Si ces paramètres ne sont pas trouvés, cette fonction tentera d’obtenir les paramètres d’Internet Explorer et de les utiliser.
Sous macOS, cette fonction récupère les paramètres de proxy à l’aide du framework CFNetwork d’Apple. Elle appliquera les configurations de proxy FTP, HTTP et HTTPS aux requêtes contenant respectivement les balises de protocole « ftp », « http » et « https ». Si le proxy SOCKS est activé dans cette configuration, cette fonction utilisera le serveur SOCKS pour toutes les requêtes. Si SOCKS n’est pas activé, elle utilisera le proxy HTTPS pour toutes les requêtes TcpSocket et UrlRequest.
Sur les systèmes configurés pour prendre en charge libproxy, cette fonction s'appuiera sur libproxy pour récupérer les paramètres de proxy. En fonction des configurations de libproxy, celle-ci peut à son tour s'appuyer sur les paramètres du bureau, les variables d’environnement, etc.
Sur les autres systèmes, cette fonction récupérera les paramètres de proxy à partir de la variable d’environnement « http_proxy ». Cette variable doit être une URL utilisant l’un des schémas suivants : « http », « socks5 » ou « socks5h ».
Limitations
Voici les limitations de la version actuelle de cette fonction. Les futures versions de Qt pourraient lever certaines des limitations répertoriées ici.
- Sur les plateformes Windows, l'exécution de cette fonction peut prendre plusieurs secondes selon la configuration du système de l'utilisateur.
[static] bool QNetworkProxyFactory::usesSystemConfiguration()
Indique si l'utilisation des paramètres de proxy spécifiques à la plate-forme est activée.
© 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.