QGIS usa il proxy, ma un plugin basato su Requests no
Segui la separazione tra la configurazione di rete di QGIS e il client Python Requests indipendente di un plugin.
Un layer della mappa viene caricato attraverso il proxy dell'ufficio, mentre la chiamata API di un plugin fallisce. Entrambe le azioni vengono eseguite dentro QGIS, ma possono usare client HTTP diversi.
QGIS espone QgsNetworkAccessManager per le operazioni di rete. Trasporta la configurazione di rete di QGIS nelle richieste effettuate tramite quel gestore. Un plugin Python che importa Requests crea un altro client con un proprio comportamento di proxy e autenticazione.
Scegli la configurazione che vuoi condividere
Per un plugin destinato a seguire le preferenze di rete di QGIS dell'utente, usare il gestore di rete di QGIS evita di ricostruire quelle preferenze in modo indipendente. Verifica l'API adatta alla versione di QGIS che supporti, incluso il suo comportamento asincrono e l'integrazione dell'autenticazione.
Se Requests serve per un altro motivo, configuralo deliberatamente. Il suo dizionario proxy e la gestione dell'ambiente seguono la documentazione di Requests. Un proxy selezionato nelle impostazioni di QGIS non è automaticamente un'impostazione di sessione di Requests.
Sii preciso sull'ambito quando provi esempi Qt da un forum. Impostare un proxy dell'applicazione Qt influisce sulla rete di Qt. Non dimostra che Requests, che usa un'altra implementazione di rete, abbia cambiato la sua rotta.
Confronta la stessa destinazione
Usa l'URL del plugin che fallisce quando confronti il comportamento. Un servizio mappe e un'API non correlata possono avere regole di bypass, permessi proxy o catene di certificati diversi. Una richiesta di mappa riuscita dimostra solo che la sua rotta funziona.
Registra il nome del client HTTP, l'host di destinazione, se è stata richiesta l'autenticazione proxy e la fase effettiva dell'errore. Escludi le password dai log del plugin. Quel piccolo confronto di solito ti dice se correggere l'integrazione di rete di QGIS o il client Python indipendente, senza reimpostare preferenze proxy che funzionano già per l'utente.