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

Use unha compilación de PycURL/libcurl compatible con proxies HTTPS. As rutas dos paquetes representan os conxuntos de confianza previstos: PROXY_CAINFO verifica o intermediario; CAINFO verifica o TLS do destino. Omita unha substitución explícita cando a confianza existente xa cubra esa conexión.

O URL de PROXY describe o seu receptor. Non fai falta adiviñar un valor numérico de PROXYTYPE. Para un receptor HTTP simple, o URL segue a ser http:// aínda cun destino HTTPS. Nese caso, a lista de proxies HTTP fornece candidatos de extremo; o paquete TLS do proxy só se aplica cando o receptor usa TLS de verdade.

Proporcione unha conta de proxy mediante PROXYUSERNAME e PROXYPASSWORD cando sexa necesario. Manteña a verificación de certificados: desactivar a verificación do proxy elimina a comprobación de identidade do intermediario en lugar de instalar a autoridade que falta.

Artigos relacionados