Bitta oxirgi nuqta mijoz so‘rovlarini boshqarishi kerak bo‘lsa proxy= ishlating. Manzil sxemalariga har xil yo‘l kerak bo‘lsa mounts= ishlating. Misollar shu HTTPX interfeyslaridan foydalanadi; eski proxies= API’li loyiha o‘z versiyasiga mos sozlama talab qiladi.

Bitta oxirgi nuqta

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)

Mahalliy tinglovchini ishlab turgan HTTP proksi bilan almashtiring. HTTP proksilar ro‘yxatidagi nomzod ham manzilingiz bilan sinalishi kerak. HTTPS nishoni shu http:// nuqtasini CONNECT orqali ishlata oladi. Sxemani https:// qilish proksining o‘ziga TLS so‘raydi; buni tinglovchi ham, mijoz ham qo‘llashi kerak.

Manzil sxemasiga qarab alohida yo‘llar

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)

Ulash kalitlari nishon URL’larga mos keladi. HTTP nishonlari bu yerda 8080, HTTPS nishonlari 8081 portini tanlaydi. Proksi qiymati tinglovchining o‘z protokolini bildiradi, shuning uchun HTTPS ulanishi http:// proksini to‘g‘ri o‘z ichiga olishi mumkin. O‘z nuqtalaringizni qo‘ying va ikkala manzil sxemasini tekshiring.

Ikkala usul mijozda va berilgan transportlarda trust_env=False o‘rnatadi. Aks holda HTTPX proksi va sertifikat muhit o‘zgaruvchilarini odatda o‘qiydi. Joylashtirish ularga tayansa, aniqlashni yoqiq qoldiring yoki kerakli yo‘llar va ishonchni aniq sozlang. Xususiy ishonch uchun HTTPX versiyangiz qo‘llaydigan TLS konteksti va CA sozlamasini ishlating; manzil tekshiruvini yoqiq qoldiring. HTTPS proksi ishonchi manzil ishonchidan alohida bo‘lishi mumkin.

httpx.Timeout(15.0, connect=5.0) ulanish vaqt chegarasini almashtirib, boshqa sozlangan qismlarga standart qiymat beradi. O‘qish, yozish va pool kutishi alohida chegaraga ega; o‘n besh soniya butun o‘tgan vaqt uchun yakuniy muddat emas. Pool timeout boshqa ish mavjud ulanishlarni ushlab turganini anglatishi mumkin. Buni proksi yetib bo‘lmasligining dalili deyishdan oldin mijozlar va oqimli javoblarni to‘g‘ri yoping.

O'xshash maqolalar