Warstwa mapy wczytuje się przez proxy biurowe, a wywołanie API wtyczki kończy się niepowodzeniem. Obie czynności działają w QGIS, ale mogą używać różnych klientów HTTP.

QGIS udostępnia QgsNetworkAccessManager do operacji sieciowych. Przenosi on konfigurację sieciową QGIS do żądań wykonywanych przez ten menedżer. Wtyczka w Pythonie, która importuje Requests, tworzy innego klienta z własnym zachowaniem proxy i uwierzytelniania.

Wybierz konfigurację, którą chcesz udostępnić

W przypadku wtyczki, która ma podążać za preferencjami sieciowymi QGIS użytkownika, użycie menedżera sieci QGIS pozwala uniknąć niezależnego odtwarzania tych preferencji. Sprawdź interfejs API odpowiedni dla obsługiwanej wersji QGIS, w tym jego asynchroniczne zachowanie i integrację uwierzytelniania.

Jeśli Requests jest potrzebny z innego powodu, skonfiguruj go świadomie. Jego słownik proxy i obsługa zmiennych środowiskowych są zgodne z dokumentacją Requests. Proxy wybrane w ustawieniach QGIS nie staje się automatycznie ustawieniem sesji Requests.

Bądź precyzyjny co do zakresu, wypróbowując przykłady Qt z forum. Ustawienie proxy aplikacji Qt wpływa na sieć Qt. Nie dowodzi to, że Requests, który używa innej implementacji sieci, zmienił swoją trasę.

Porównaj ten sam cel

Porównując zachowanie, użyj adresu URL wtyczki, która zawodzi. Usługa mapowa i niezwiązany z nią interfejs API mogą mieć różne reguły omijania, uprawnienia proxy lub łańcuchy certyfikatów. Udane żądanie mapy dowodzi tylko, że działa jego własna trasa.

Zapisz nazwę klienta HTTP, host docelowy, informację, czy zażądano uwierzytelnienia proxy, oraz rzeczywisty etap błędu. Wyklucz hasła z logów wtyczki. To niewielkie porównanie zwykle mówi, czy naprawić integrację sieciową QGIS, czy niezależnego klienta Python, bez resetowania preferencji proxy, które już działają u użytkownika.

Powiązane artykuły