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

Bruk en PycURL/libcurl-bygg som støtter HTTPS-proxyer. Buntstiene angir de tiltenkte tillitssettene: PROXY_CAINFO verifiserer mellomleddet; CAINFO verifiserer destinasjonens TLS. Utelat en eksplisitt overstyring når eksisterende tillit allerede dekker den forbindelsen.

URL-en i PROXY beskriver lytteren sin. Det trengs ingen numerisk PROXYTYPE-gjetning. For en vanlig HTTP-lytter forblir URL-en http:// selv med en HTTPS-destinasjon. I så fall gir HTTP-proxylisten endepunktkandidater; proxy-TLS-bunten gjelder bare når lytteren faktisk bruker TLS.

Oppgi en proxykonto via PROXYUSERNAME og PROXYPASSWORD når det kreves. Behold sertifikatverifiseringen: å slå av proxyverifisering fjerner identitetskontrollen av mellomleddet i stedet for å installere den manglende autoriteten.

Relaterte artikler