Memilih laluan proksi HTTPX dengan proxy dan mounts
Gunakan proxy dan pemasangan transport HTTPX dengan skema betul, tingkah laku persekitaran yang jelas serta had sambungan dan bacaan berasingan.
Gunakan proxy= apabila satu titik akhir perlu mengendalikan permintaan klien. Gunakan mounts= apabila skema destinasi memerlukan laluan berlainan. Contoh menggunakan antara muka HTTPX ini; projek dengan API lama proxies= perlu konfigurasi yang sepadan dengan versinya.
Satu titik akhir
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)
Gantikan pendengar setempat dengan proksi HTTP yang berjalan. Calon daripada senarai proksi HTTP masih perlu diuji dengan destinasi anda. Sasaran HTTPS boleh menggunakan titik http:// ini melalui CONNECT. Menukar skema kepada https:// meminta TLS kepada proksi itu sendiri, yang mesti disokong pendengar dan klien.
Laluan berasingan mengikut skema destinasi
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)
Kunci pemasangan sepadan dengan URL sasaran. Sasaran HTTP di sini memilih port 8080; HTTPS memilih 8081. Nilai proksi menerangkan protokol pendengar sendiri, maka pemasangan HTTPS boleh mengandungi proksi http:// dengan betul. Masukkan titik anda dan semak kedua-dua skema destinasi.
Kedua-dua resipi menetapkan trust_env=False pada klien dan, jika diberikan, pada transport. Jika tidak, HTTPX secara lalai membaca pemboleh ubah persekitaran proksi dan sijil. Jika penggunaan anda bergantung padanya, kekalkan penemuan aktif atau tetapkan laluan dan kepercayaan secara jelas. Untuk kepercayaan persendirian gunakan konteks TLS dan konfigurasi CA yang disokong versi HTTPX anda; biarkan pengesahan destinasi aktif. Kepercayaan proksi HTTPS boleh berasingan daripada kepercayaan destinasi.
httpx.Timeout(15.0, connect=5.0) menggantikan had masa sambungan dan memberikan nilai lalai kepada komponen lain yang dikonfigurasi. Bacaan, penulisan dan menunggu pool mempunyai had berasingan; lima belas saat bukan tarikh akhir keseluruhan masa sebenar. Tamat masa pool boleh bermaksud kerja lain memegang sambungan yang tersedia. Tutup klien dan respons penstriman dengan betul sebelum menganggapnya bukti proksi tidak dapat dicapai.