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

Използвайте сборка на PycURL/libcurl, която поддържа HTTPS прокси. Пътищата до пакетите означават желаните набори за доверие: PROXY_CAINFO проверява посредника; CAINFO проверява TLS на дестинацията. Пропуснете явното заместване, когато съществуващото доверие вече покрива тази връзка.

URL адресът в PROXY описва неговия слушател. Не е нужно числово предположение за PROXYTYPE. За обикновен HTTP слушател адресът остава http:// дори при HTTPS дестинация. В този случай списъкът с HTTP прокси дава кандидати за крайни точки; TLS пакетът на проксито важи само когато слушателят наистина използва TLS.

При нужда подайте профил за прокси чрез PROXYUSERNAME и PROXYPASSWORD. Запазете проверката на сертификата: изключването на проверката на проксито премахва проверката на самоличността на посредника, вместо да инсталира липсващия орган.

Подобни статии