Chọn đường đi proxy HTTPX bằng proxy và mounts
Dùng proxy và gắn transport của HTTPX với đúng lược đồ, hành vi môi trường rõ ràng và giới hạn kết nối, đọc riêng biệt.
Dùng proxy= khi một điểm cuối cần xử lý các yêu cầu của máy khách. Dùng mounts= khi lược đồ đích cần đường đi khác nhau. Ví dụ dùng các giao diện HTTPX này; dự án với API cũ proxies= cần cấu hình đúng phiên bản.
Một điểm cuối
import httpx
timeout = httpx.Timeout(15.0, connect=5.0)
with httpx.Client(
proxy="http://127.0.0.1:8080",
trust_env=False,
timeout=timeout,
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Thay bộ lắng nghe cục bộ bằng proxy HTTP đang chạy. Ứng viên từ danh sách proxy HTTP vẫn cần thử với đích của bạn. Đích HTTPS có thể dùng điểm cuối http:// này qua CONNECT. Đổi lược đồ thành https:// lại yêu cầu TLS tới chính proxy, cần cả bộ lắng nghe và máy khách hỗ trợ.
Tách đường đi theo lược đồ đích
import httpx
mounts = {
"http://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8080",
trust_env=False,
),
"https://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8081",
trust_env=False,
),
}
with httpx.Client(
mounts=mounts,
trust_env=False,
timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Khóa gắn khớp với URL đích. Đích HTTP ở đây chọn cổng 8080; HTTPS chọn cổng 8081. Giá trị proxy mô tả giao thức của chính bộ lắng nghe, nên phần gắn HTTPS có thể chứa proxy http:// một cách đúng đắn. Thay điểm cuối và kiểm tra cả hai lược đồ đích.
Cả hai cách đặt trust_env=False trên máy khách và, khi được cung cấp, trên transport. Nếu không, HTTPX mặc định đọc biến môi trường proxy và chứng chỉ. Nếu triển khai dựa vào chúng, giữ tự phát hiện hoặc cấu hình rõ đường đi và độ tin cậy cần thiết. Với độ tin cậy riêng, dùng ngữ cảnh TLS và cấu hình CA mà phiên bản HTTPX hỗ trợ; giữ xác minh đích hoạt động. Tin cậy proxy HTTPS có thể tách khỏi tin cậy đích.
httpx.Timeout(15.0, connect=5.0) ghi đè thời gian chờ kết nối và cung cấp giá trị mặc định cho các thành phần đã cấu hình khác. Đọc, ghi và chờ pool có giới hạn riêng; mười lăm giây không phải hạn tổng của thời gian thực đã trôi qua. Timeout pool có thể do công việc khác giữ các kết nối sẵn có. Đóng đúng máy khách và phản hồi truyền luồng trước khi coi đó là bằng chứng proxy không thể truy cập.