Ko je Requests na voljo v projektu, podajte klicu preslikavo proxyjev:

import requests

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

response = requests.get(
    "https://example.com/",
    proxies=proxies,
    timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)

Končno točko povratne zanke zamenjajte s svojim delujočim proxyjem ali kandidatom s seznama proxyjev HTTP, ki ga boste preizkusili s to zahtevo. Ključi opisujejo sheme cilja: http za URL-je HTTP in https za URL-je HTTPS. Vrednosti opisujejo poslušalnik proxyja. Lahko so različne končne točke, če omrežje zahteva ločene poti.

Vrednost proxyja http:// pod ključem https je namerna. Requests od poslušalnika HTTP zahteva predor CONNECT, nato prek njega vzpostavi TLS s ciljem, ob upoštevanju pravil proxyja za cilje in vrata. Sprememba vrednosti v https:// zahteva TLS do samega proxyja; če poslušalnik pričakuje nešifrirani HTTP, lahko spodleti.

Kaj pomenita dve vrednosti časovne omejitve

timeout=(5, 15) nastavi omejitvi za povezovanje in branje. Ne določi skupnega roka petnajstih sekund. Občasno prispeli podatki, več naslovov in poskusi povezave lahko podaljšajo pretečeni čas. Requests ne ponuja splošne omejitve, če nastavitev izpustite. Izberite meje, primerne odgovoru, in dodajte rok na ravni aplikacije, če opravilo potrebuje strog skupni časovni proračun.

Napako obravnavajte v fazi, v kateri se pojavi

try:
    response = requests.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()
except requests.exceptions.ProxyError as error:
    print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
    print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
    print("HTTP status:", error.response.status_code)

Zavrnjen CONNECT lahko sproži ProxyError, še preden obstaja odgovor cilja. Veja HTTPError sledi prejetemu odgovoru s stanjem napake; Timeout pomeni, da je nastavljena meja potekla. Verige izjem vzpostavljanja povezave preglejte lokalno ter pred deljenjem odstranite končne točke s poverilnicami in zasebne URL-je.

Preverjanje potrdil pustite vključeno. Če pooblaščeno omrežje uporablja zasebni CA ali upravljano prestrezanje, zagotovite pričakovano gradivo zaupanja namesto izklopa preverjanja.

Izrecni vnosi za posamezno zahtevo nadzorujejo tukaj podane poti, vendar na izpuščene sheme še vedno lahko vpliva odkrivanje proxyjev iz okolja. Pri prenosu klica v večkrat uporabljivo Session določite, kako naj sodelujejo spremenljivke okolja, privzete vrednosti Session in preglasitve za zahtevo; ponovna uporaba povezave in politika usmerjanja sta ločeni odločitvi.

Sorodni članki