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

Utilisez une compilation de PycURL/libcurl prenant en charge les proxies HTTPS. Les chemins des lots représentent les ensembles de confiance prévus : PROXY_CAINFO vérifie l'intermédiaire ; CAINFO vérifie le TLS de la destination. Omettez toute substitution explicite lorsque la confiance existante couvre déjà cette connexion.

L'URL de PROXY décrit son écouteur. Aucune supposition numérique de PROXYTYPE n'est nécessaire. Pour un écouteur HTTP simple, l'URL reste http:// même avec une destination HTTPS. Dans ce cas, la liste de proxies HTTP fournit des candidats de point de terminaison ; le lot TLS du proxy ne s'applique que si l'écouteur utilise réellement TLS.

Fournissez un compte proxy via PROXYUSERNAME et PROXYPASSWORD lorsque c'est requis. Conservez la vérification des certificats : désactiver la vérification du proxy supprime le contrôle d'identité de l'intermédiaire au lieu d'installer l'autorité manquante.

Articles similaires