Un site are nevoie de un proxy diferit față de restul cererilor HTTPS. Requests poate exprima această alegere chiar în dicționarul de proxy-uri:

routes = {
    "https://reports.example": "http://reports-proxy.example:8080",
    "https": "http://default-proxy.example:8080",
}
response = requests.get(
    "https://reports.example/monthly",
    proxies=routes,
    timeout=(5, 20),
)
response.raise_for_status()

Pentru acea destinație câștigă cheia specifică numelui de gazdă. Un alt nume de gazdă HTTPS folosește intrarea pentru întreaga schemă. Valorile descriu conexiunea proxy, deci o destinație HTTPS se poate mapa corect la un URL de proxy HTTP. Când acestea sunt rute permise de site-uri publice fără conturi proxy, lista de proxy-uri HTTP poate furniza candidați pentru acele valori; păstrați fiecare regulă de destinație explicită.

Potriviți un nume de gazdă, nu un URL de resursă

În Requests 2.32.5, cheia specifică este construită din schema destinației și din numele de gazdă analizat. Nu conține calea, interogarea sau portul.

Adăugarea /monthly la cheia dicționarului nu va restrânge regula la acea cale. La fel, https://reports.example:8443 nu este o cheie specifică portului pe care acest selector să o recunoască. Regula numelui de gazdă se aplică și când URL-ul destinației folosește alt port.

Nu există extindere cu metacaractere în această căutare. O regulă pentru reports.example nu acoperă automat un subdomeniu. Folosiți o decizie explicită de rutare în afara acestui dicționar simplu când politica cere potrivirea căii, a portului sau a sufixului.

Știți care opțiune de rezervă urmează

Implementarea verifică cheile în această ordine: scheme://hostname, scheme, all://hostname, apoi all. Așadar, o intrare HTTPS pentru întreaga schemă are prioritate față de o intrare de nume de gazdă pentru toate schemele. Puneți o regulă de nume de gazdă specifică schemei prima în proiectarea dvs. când aceasta este excepția dorită.

Luați în calcul și modul în care Session-ul dvs. îmbină valorile implicite și setările derivate din mediu. Transmiterea acestor două intrări explicite cu cererea face clare rutele dorite, dar nu definește o politică pentru orice altă schemă de destinație.

O redirecționare poate introduce un alt nume de gazdă, iar alegerea proxy-ului este relevantă și pentru acea destinație nouă. Citiți regula ca o decizie despre fiecare URL solicitat, nu ca o rută permanentă atașată primei pagini.

Articole similare