QNetworkProxyFactory Class
La classe QNetworkProxyFactory permet une sélection fine du proxy. Plus d'informations...
| 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, qui permet aux applications d'avoir un contrôle plus fin sur les serveurs proxy utilisés, en fonction de la socket qui demande le proxy. Cela permet à une application d'appliquer des paramètres différents, en fonction du protocole ou du nom d'hôte de destination, par exemple.
QNetworkProxyFactory peut être défini globalement pour une application, auquel cas il remplacera tous les serveurs mandataires globaux définis avec QNetworkProxy::setApplicationProxy(). Si elle est définie globalement, toutes les sockets créées avec Qt interrogeront la fabrique pour déterminer le proxy à utiliser.
Une fabrique peut également être définie dans certains cadres qui prennent en charge des connexions multiples, tels que QNetworkAccessManager. Lorsqu'elle est définie sur un tel objet, la fabrique sera interrogée pour les sockets créées par ce framework uniquement.
Proxy du système
Vous pouvez configurer une fabrique pour qu'elle utilise les paramètres du proxy système. Appelez la fonction setUseSystemConfiguration() avec true pour activer ce comportement, ou false pour le désactiver.
De même, vous pouvez utiliser une fabrique pour faire des requêtes directement au proxy système en appelant sa fonction systemProxyForQuery().
Attention : Selon la configuration du système de l'utilisateur, l'utilisation des fonctionnalités du proxy système sur certaines plateformes peut être soumise à des limitations. La documentation systemProxyForQuery() contient une liste de ces limitations pour les plates-formes 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 des objets de type QNetworkProxyFactory.
[virtual noexcept] QNetworkProxyFactory::~QNetworkProxyFactory()
Détruit l'objet QNetworkProxyFactory.
[static] QList<QNetworkProxy> QNetworkProxyFactory::proxyForQuery(const QNetworkProxyQuery &query)
Cette fonction prend la requête, query, examine les détails du type de socket ou de requête et renvoie une liste d'objets QNetworkProxy qui indiquent les serveurs proxy à utiliser, par ordre de préférence.
[pure virtual] QList<QNetworkProxy> QNetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery())
Cette fonction prend la requête query, examine les détails du type de socket ou de requête et renvoie une liste d'objets QNetworkProxy qui indiquent les serveurs mandataires à utiliser, par ordre de préférence.
Lorsque vous réimplémentez cette classe, veillez à renvoyer au moins un élément.
Si vous ne pouvez pas déterminer une meilleure alternative de proxy, utilisez QNetworkProxy::DefaultProxy, qui indique au code qui demande un proxy d'utiliser une alternative supérieure. Par exemple, si cette fabrique est définie comme un objet QNetworkAccessManager, DefaultProxy lui indiquera d'interroger les paramètres du proxy au niveau de l'application.
Si cette fabrique est définie comme fabrique de proxy d'application, DefaultProxy et NoProxy auront la même signification.
[static] void QNetworkProxyFactory::setApplicationProxyFactory(QNetworkProxyFactory *factory)
Définit la fabrique de proxy pour l'ensemble de l'application à l'adresse factory. Cette fonction prendra possession de cet objet et le supprimera si nécessaire.
Le proxy de l'application est utilisé en dernier recours lorsque toutes les autres demandes de sélection de proxy ont renvoyé QNetworkProxy::DefaultProxy. Par exemple, les objets QTcpSocket peuvent avoir un proxy défini avec 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 proxy avec cette fonction, tous les proxys au niveau de l'application définis avec QNetworkProxy::setApplicationProxy seront remplacés, et usesSystemConfiguration() renverra false.
Voir aussi QNetworkProxy::setApplicationProxy(), QAbstractSocket::proxy() et QAbstractSocket::setProxy().
[static] void QNetworkProxyFactory::setUseSystemConfiguration(bool enable)
Active l'utilisation des paramètres de proxy spécifiques à la plate-forme, et uniquement ceux-ci. Voir systemProxyForQuery() pour plus d'informations.
L'appel à cette fonction alors que enable est défini sur true réinitialise tout proxy ou QNetworkProxyFactory déjà défini.
Note : Voir la documentation de systemProxyForQuery() pour une liste des limitations liées à l'utilisation des proxys du système.
[static] QList<QNetworkProxy> QNetworkProxyFactory::systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery())
Cette fonction prend la requête query, examine les détails du type de socket ou de requête et renvoie une liste d'objets QNetworkProxy qui indiquent 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. Cette fonction utilisera les bibliothèques fournies par le système d'exploitation pour déterminer le proxy pour une connexion donnée, si ces bibliothèques existent. Dans le cas contraire, cette fonction renverra simplement une adresse QNetworkProxy de type QNetworkProxy::NoProxy.
Sous Windows, cette fonction utilise les fonctions de la DLL WinHTTP. Malgré son nom, Microsoft suggère de l'utiliser pour toutes les applications qui nécessitent des connexions réseau, et pas seulement HTTP. Cette fonction 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.
Sur macOS, cette fonction obtiendra les paramètres du proxy en utilisant le cadre CFNetwork d'Apple. Elle appliquera les configurations de proxy FTP, HTTP et HTTPS pour les requêtes qui contiennent la balise de protocole "ftp", "http" et "https", respectivement. 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 avec le support de libproxy, cette fonction s'appuiera sur libproxy pour obtenir les paramètres du proxy. En fonction de la configuration de libproxy, cette fonction peut à son tour être déléguée aux paramètres du bureau, aux variables d'environnement, etc.
Sur d'autres systèmes, cette fonction récupère les paramètres du 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
Il s'agit des limitations de la version actuelle de cette fonction. Les versions futures de Qt pourraient lever certaines des limitations énumérées ici.
- Sur les plates-formes Windows, l'exécution de cette fonction peut prendre plusieurs secondes en fonction de 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.