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 een PycURL/libcurl-build die HTTPS-proxy's ondersteunt. De bundelpaden staan voor de bedoelde vertrouwenssets: PROXY_CAINFO verifieert de tussenpartij; CAINFO verifieert de TLS van de bestemming. Laat een expliciete overschrijving weg wanneer bestaand vertrouwen die verbinding al dekt.

De URL in PROXY beschrijft zijn listener. Een numerieke PROXYTYPE-gok is niet nodig. Voor een gewone HTTP-listener blijft de URL http://, zelfs met een HTTPS-bestemming. In dat geval levert de HTTP-proxylijst eindpuntkandidaten; de proxy-TLS-bundel geldt alleen wanneer de listener echt TLS gebruikt.

Geef zo nodig een proxyaccount op via PROXYUSERNAME en PROXYPASSWORD. Behoud certificaatverificatie: het uitschakelen van proxyverificatie verwijdert de identiteitscontrole van de tussenpartij in plaats van de ontbrekende autoriteit te installeren.

Gerelateerde artikelen