Một lớp bản đồ tải qua proxy của văn phòng, trong khi lệnh gọi API của plugin lại thất bại. Cả hai hành động đều chạy bên trong QGIS, nhưng chúng có thể dùng các ứng dụng khách HTTP khác nhau.

QGIS cung cấp QgsNetworkAccessManager cho các thao tác mạng. Nó mang cấu hình mạng của QGIS vào các yêu cầu được thực hiện qua trình quản lý đó. Một plugin Python nhập Requests sẽ tạo ra một ứng dụng khách khác với hành vi proxy và xác thực riêng.

Chọn cấu hình bạn muốn chia sẻ

Với một plugin nhằm tuân theo tùy chọn mạng QGIS của người dùng, việc dùng trình quản lý mạng của QGIS tránh phải dựng lại các tùy chọn đó một cách độc lập. Hãy kiểm tra API phù hợp với phiên bản QGIS bạn hỗ trợ, bao gồm hành vi bất đồng bộ và tích hợp xác thực của nó.

Nếu cần Requests vì lý do khác, hãy cấu hình nó một cách có chủ đích. Từ điển proxy và cách xử lý biến môi trường của nó tuân theo tài liệu Requests. Một proxy được chọn trong cài đặt QGIS không tự động trở thành cài đặt phiên Requests.

Hãy chính xác về phạm vi khi thử các ví dụ Qt từ một diễn đàn. Đặt proxy cho ứng dụng Qt ảnh hưởng đến mạng của Qt. Điều đó không chứng minh rằng Requests, vốn dùng một cách triển khai mạng khác, đã đổi tuyến của nó.

So sánh cùng một đích

Dùng URL plugin đang thất bại khi so sánh hành vi. Một dịch vụ bản đồ và một API không liên quan có thể có quy tắc bỏ qua, quyền proxy hoặc chuỗi chứng chỉ khác nhau. Một yêu cầu bản đồ thành công chỉ chứng minh rằng tuyến của chính nó hoạt động.

Ghi lại tên ứng dụng khách HTTP, máy chủ đích, liệu xác thực proxy có được yêu cầu hay không, và giai đoạn lỗi thực tế. Loại bỏ mật khẩu khỏi nhật ký plugin. So sánh nhỏ đó thường cho bạn biết nên sửa tích hợp mạng của QGIS hay ứng dụng khách Python độc lập, mà không cần đặt lại các tùy chọn proxy vốn đã hoạt động cho người dùng.

Bài viết liên quan