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()

Gunakan build PycURL/libcurl yang mendukung proxy HTTPS. Jalur bundel mewakili kumpulan kepercayaan yang dimaksud: PROXY_CAINFO memverifikasi perantara; CAINFO memverifikasi TLS tujuan. Hilangkan penggantian eksplisit bila kepercayaan yang ada sudah mencakup koneksi tersebut.

URL dalam PROXY menjelaskan listener-nya. Tidak perlu dugaan angka PROXYTYPE. Untuk listener HTTP biasa, URL-nya tetap http:// meskipun tujuannya HTTPS. Dalam kasus itu, daftar proxy HTTP menyediakan kandidat endpoint; bundel TLS proxy hanya berlaku bila listener benar-benar memakai TLS.

Berikan akun proxy melalui PROXYUSERNAME dan PROXYPASSWORD bila diperlukan. Pertahankan verifikasi sertifikat: menonaktifkan verifikasi proxy menghapus pemeriksaan identitas perantara, bukan memasang otoritas yang hilang.

Artikel terkait