from io import BytesIO
import pycurl

body = BytesIO()
curl = pycurl.Curl()
try:
    curl.setopt(pycurl.URL, "https://api.example/")
    curl.setopt(pycurl.PROXY, "https://proxy.example:8443")
    curl.setopt(pycurl.PROXY_CAINFO, "/path/to/proxy-ca.pem")
    curl.setopt(pycurl.CAINFO, "/path/to/origin-ca.pem")
    curl.setopt(pycurl.CONNECTTIMEOUT, 5)
    curl.setopt(pycurl.TIMEOUT, 30)
    curl.setopt(pycurl.WRITEDATA, body)
    curl.perform()
finally:
    curl.close()

HTTPS proksilarni qo'llab-quvvatlaydigan PycURL/libcurl versiyasidan foydalaning. To'plam yo'llari ko'zlangan ishonch to'plamlarini bildiradi: PROXY_CAINFO vositachini tekshiradi; CAINFO manzilning TLS ini tekshiradi. Mavjud ishonch bu ulanishni allaqachon qamrab olgan bo'lsa, aniq almashtirishni tashlab yuboring.

PROXY dagi URL o'z tinglovchisini tavsiflaydi. Raqamli PROXYTYPE taxmin kerak emas. Oddiy HTTP tinglovchisi uchun manzil HTTPS bo'lsa ham URL http:// bo'lib qoladi. Bunday holatda HTTP proksi ro'yxati so'nggi nuqta nomzodlarini beradi; proksi TLS to'plami faqat tinglovchi haqiqatan TLS ishlatganda qo'llaniladi.

Zarur bo'lganda PROXYUSERNAME va PROXYPASSWORD orqali proksi hisobini bering. Sertifikat tekshiruvini saqlang: proksi tekshiruvini o'chirish yetishmayotgan idorani o'rnatish o'rniga vositachining shaxsini tekshirishni olib tashlaydi.

O'xshash maqolalar