QGIS nutzt den Proxy, ein Requests-basiertes Plugin jedoch nicht
Die Trennung zwischen QGIS-Netzwerkkonfiguration und dem unabhängigen Python-Requests-Client eines Plugins nachvollziehen.
Eine Kartenebene lädt über den Büro-Proxy, während der API-Aufruf eines Plugins fehlschlägt. Beide Aktionen laufen in QGIS, verwenden aber möglicherweise unterschiedliche HTTP-Clients.
QGIS stellt QgsNetworkAccessManager für Netzwerkoperationen bereit. Er übernimmt die Netzwerkkonfiguration von QGIS in Anfragen, die über diesen Manager laufen. Ein Python-Plugin, das Requests importiert, erzeugt einen weiteren Client mit eigenem Proxy- und Authentifizierungsverhalten.
Wählen Sie die Konfiguration, die Sie teilen möchten
Für ein Plugin, das den QGIS-Netzwerkeinstellungen des Nutzers folgen soll, vermeidet die Verwendung des QGIS-Netzwerkmanagers, diese Einstellungen separat nachzubauen. Prüfen Sie die API der von Ihnen unterstützten QGIS-Version, einschließlich ihres asynchronen Verhaltens und der Authentifizierungsintegration.
Wird Requests aus einem anderen Grund benötigt, konfigurieren Sie es bewusst. Sein Proxy-Dictionary und die Umgebungsbehandlung folgen der Requests-Dokumentation. Ein in den QGIS-Einstellungen ausgewählter Proxy ist nicht automatisch eine Requests-Session-Einstellung.
Seien Sie beim Ausprobieren von Qt-Beispielen aus einem Forum präzise beim Geltungsbereich. Das Setzen eines Qt-Anwendungsproxys wirkt sich auf die Qt-Netzwerkschicht aus. Es belegt nicht, dass Requests, das eine andere Netzwerkimplementierung verwendet, seine Route geändert hat.
Vergleichen Sie dasselbe Ziel
Verwenden Sie beim Vergleich des Verhaltens die URL des fehlschlagenden Plugins. Ein Kartendienst und eine unabhängige API können unterschiedliche Bypass-Regeln, Proxy-Berechtigungen oder Zertifikatsketten haben. Eine erfolgreiche Kartenanfrage belegt nur, dass ihre eigene Route funktioniert.
Erfassen Sie den Namen des HTTP-Clients, den Zielhost, ob eine Proxy-Authentifizierung angefordert wurde und in welcher Phase der Fehler tatsächlich auftrat. Schließen Sie Passwörter aus Plugin-Logs aus. Dieser kleine Vergleich zeigt in der Regel, ob die QGIS-Netzwerkintegration oder der unabhängige Python-Client zu korrigieren ist, ohne Proxy-Einstellungen zurückzusetzen, die für den Nutzer bereits funktionieren.