Une couche de carte se charge via le proxy du bureau, tandis qu'un appel d'API d'une extension échoue. Les deux actions s'exécutent dans QGIS, mais elles peuvent utiliser des clients HTTP différents.

QGIS expose QgsNetworkAccessManager pour les opérations réseau. Il transmet la configuration réseau de QGIS aux requêtes effectuées via ce gestionnaire. Une extension Python qui importe Requests crée un autre client avec son propre comportement de proxy et d'authentification.

Choisissez la configuration que vous souhaitez partager

Pour une extension censée suivre les préférences réseau QGIS de l'utilisateur, utiliser le gestionnaire réseau de QGIS évite de reconstruire ces préférences séparément. Vérifiez l'API adaptée à la version de QGIS que vous prenez en charge, y compris son comportement asynchrone et son intégration d'authentification.

Si Requests est nécessaire pour une autre raison, configurez-le délibérément. Son dictionnaire de proxy et la gestion de l'environnement suivent la documentation de Requests. Un proxy sélectionné dans les paramètres de QGIS n'est pas automatiquement un réglage de session Requests.

Soyez précis sur la portée lorsque vous essayez des exemples Qt provenant d'un forum. Définir un proxy d'application Qt affecte la mise en réseau de Qt. Cela ne prouve pas que Requests, qui utilise une autre implémentation réseau, a changé de route.

Comparez la même destination

Utilisez l'URL de l'extension qui échoue lors de la comparaison des comportements. Un service de cartes et une API sans rapport peuvent avoir des règles de contournement, des autorisations de proxy ou des chaînes de certificats différentes. Une requête de carte réussie prouve seulement que sa propre route fonctionne.

Notez le nom du client HTTP, l'hôte de destination, si une authentification proxy a été demandée et l'étape réelle de l'erreur. Excluez les mots de passe des journaux de l'extension. Cette petite comparaison indique généralement s'il faut corriger l'intégration réseau de QGIS ou le client Python indépendant, sans réinitialiser des préférences de proxy qui fonctionnent déjà pour l'utilisateur.

Articles similaires