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

Feu servir una compilació de PycURL/libcurl amb suport de proxies HTTPS. Els camins dels paquets representen els conjunts de confiança previstos: PROXY_CAINFO verifica l'intermediari; CAINFO verifica el TLS de la destinació. Ometeu una substitució explícita quan la confiança existent ja cobreix aquella connexió.

La URL de PROXY descriu el seu oient. No cal cap conjectura numèrica de PROXYTYPE. Per a un oient HTTP simple, la URL continua sent http:// fins i tot amb una destinació HTTPS. En aquest cas, la llista de proxies HTTP proporciona candidats a punt final; el paquet TLS del proxy només s'aplica quan l'oient realment fa servir TLS.

Proporcioneu un compte de proxy mitjançant PROXYUSERNAME i PROXYPASSWORD quan calgui. Manteniu la verificació del certificat: desactivar la verificació del proxy elimina la comprovació d'identitat de l'intermediari en lloc d'instal·lar l'autoritat que falta.

Articles relacionats