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 binaan PycURL/libcurl yang menyokong proksi HTTPS. Laluan bundel mewakili set kepercayaan yang dimaksudkan: PROXY_CAINFO mengesahkan perantara; CAINFO mengesahkan TLS destinasi. Tinggalkan penggantian eksplisit apabila kepercayaan sedia ada sudah meliputi sambungan itu.

URL dalam PROXY menerangkan pendengarnya. Tiada tekaan angka PROXYTYPE diperlukan. Bagi pendengar HTTP biasa, URL kekal http:// walaupun destinasinya HTTPS. Dalam kes itu, senarai proksi HTTP menyediakan calon titik akhir; bundel TLS proksi hanya terpakai apabila pendengar benar-benar menggunakan TLS.

Berikan akaun proksi melalui PROXYUSERNAME dan PROXYPASSWORD apabila diperlukan. Kekalkan pengesahan sijil: melumpuhkan pengesahan proksi membuang semakan identiti perantara dan bukannya memasang pihak berkuasa yang hilang.

Artikel berkaitan