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

Folosiți o compilare PycURL/libcurl care suportă proxy-uri HTTPS. Căile pachetelor reprezintă seturile de încredere dorite: PROXY_CAINFO verifică intermediarul; CAINFO verifică TLS-ul destinației. Omiteți o suprascriere explicită atunci când încrederea existentă acoperă deja acea conexiune.

URL-ul din PROXY descrie listener-ul său. Nu este nevoie de o presupunere numerică PROXYTYPE. Pentru un listener HTTP simplu, URL-ul rămâne http:// chiar și cu o destinație HTTPS. În acest caz, lista de proxy-uri HTTP oferă candidați pentru puncte finale; pachetul TLS al proxy-ului se aplică doar când listener-ul folosește efectiv TLS.

Furnizați un cont de proxy prin PROXYUSERNAME și PROXYPASSWORD atunci când este necesar. Păstrați verificarea certificatelor: dezactivarea verificării proxy-ului elimină verificarea identității intermediarului în loc să instaleze autoritatea lipsă.

Articole similare