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

Gebruik 'n PycURL/libcurl-bou wat HTTPS-proxies ondersteun. Die bondelpaaie verteenwoordig die beoogde vertrouensstelle: PROXY_CAINFO verifieer die tussenganger; CAINFO verifieer die TLS van die bestemming. Laat 'n eksplisiete oorheersing weg wanneer bestaande vertroue daardie verbinding reeds dek.

Die URL in PROXY beskryf sy luisteraar. Geen numeriese PROXYTYPE-raaiskoot is nodig nie. Vir 'n gewone HTTP-luisteraar bly sy URL http://, selfs met 'n HTTPS-bestemming. In daardie geval voorsien die HTTP-proxylys kandidaat-eindpunte; die proxy-TLS-bondel geld slegs wanneer die luisteraar werklik TLS gebruik.

Verskaf 'n proxyrekening via PROXYUSERNAME en PROXYPASSWORD wanneer dit vereis word. Behoud sertifikaatverifikasie: die deaktiveer van proxyverifikasie verwyder die identiteitskontrole van die tussenganger eerder as om die ontbrekende gesag te installeer.

Verwante artikels