O QGIS usa o proxy, mas um plugin baseado em Requests não
Trace a separação entre a configuração de rede do QGIS e o cliente Python Requests independente de um plugin.
Uma camada de mapa é carregada pelo proxy do escritório, enquanto a chamada de API de um plugin falha. Ambas as ações são executadas dentro do QGIS, mas podem usar clientes HTTP diferentes.
O QGIS expõe QgsNetworkAccessManager para operações de rede. Ele transmite a configuração de rede do QGIS para as requisições feitas por meio desse gerenciador. Um plugin Python que importa Requests cria outro cliente com seu próprio comportamento de proxy e autenticação.
Escolha a configuração que deseja compartilhar
Para um plugin que deve seguir as preferências de rede do QGIS do usuário, usar o gerenciador de rede do QGIS evita reconstruir essas preferências de forma independente. Verifique a API adequada à versão do QGIS que você oferece suporte, incluindo seu comportamento assíncrono e a integração de autenticação.
Se Requests for necessário por outro motivo, configure-o deliberadamente. Seu dicionário de proxy e o tratamento de variáveis de ambiente seguem a documentação do Requests. Um proxy selecionado nas configurações do QGIS não se torna automaticamente uma configuração de sessão do Requests.
Seja preciso quanto ao escopo ao testar exemplos de Qt de um fórum. Definir um proxy da aplicação Qt afeta a rede do Qt. Isso não estabelece que o Requests, que usa outra implementação de rede, tenha mudado sua rota.
Compare o mesmo destino
Use a URL do plugin com falha ao comparar o comportamento. Um serviço de mapas e uma API não relacionada podem ter regras de bypass, permissões de proxy ou cadeias de certificados diferentes. Uma requisição de mapa bem-sucedida estabelece apenas que sua própria rota funciona.
Registre o nome do cliente HTTP, o host de destino, se a autenticação de proxy foi solicitada e o estágio real do erro. Exclua senhas dos logs do plugin. Essa pequena comparação geralmente indica se você deve corrigir a integração de rede do QGIS ou o cliente Python independente, sem redefinir preferências de proxy que já funcionam para o usuário.