Proxy-t e Session në Python Requests dhe përparësia e mjedisit
Bëjeni rrugëzimin e Python Requests të parashikueshëm kur ndërveprojnë session.proxies, ndryshoret e mjedisit, cilësimet e kërkesës dhe trust_env.
Nëse session.proxies tregon një pikë fundore, por skripti përdor proxy-n e shell-it, ricaktimi i të njëjtit fjalor nuk e zgjidh konfliktin. Requests mund t’i bashkojë cilësimet e proxy-t të mjedisit me përparësi ndaj parazgjedhjeve të Session. Zgjidhni nëse Session duhet të vazhdojë zbulimin e cilësimeve nga mjedisi.
Mbajeni zbulimin e mjedisit, jepni rrugët në kërkesë
Kaloni vlera të qarta te thirrja individuale, siç rekomandon Requests për të shmangur këtë konflikt ndërmjet Session dhe mjedisit:
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
with requests.Session() as session:
response = session.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
Zëvendësoni dëgjuesin lokal me tuajin. Nëse krahasoni pika HTTP publike, zgjidhni kandidatë nga lista e proxy-ve HTTP duke mbajtur të pandryshuar politikën Session. Kjo kontrollon zërat e hartëzimit të dhënë; bëni zgjedhje të qëllimshme edhe për skema ose hoste të tjera të aplikacionit. Shërbimi, IDE, kontejneri ose ekzekutuesi CI mund të trashëgojë mjedis tjetër nga terminali.
Lëreni Session të kontrollojë cilësimet e veta
Nëse aplikacioni nuk duhet të zbulojë proxy nga mjedisi, vendosni politikën para kërkesës së parë:
with requests.Session() as session:
session.trust_env = False
session.proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = session.get(
"https://example.com/",
timeout=(5, 15),
)
response.raise_for_status()
trust_env=False ndikon edhe në konfigurimin e certifikatave të lidhur me mjedisin dhe autentikimin automatik netrc. Merrni parasysh këto varësi përpara zgjedhjes. Për një paketë private të miratuar certifikatash CA, mund të jepni shteg të qartë:
response = session.get(
"https://example.com/",
timeout=(5, 15),
verify="/path/to/approved-ca-bundle.pem",
)
Përdorni paketën realisht të miratuar dhe mbajeni verifikimin aktiv. Mbani Session më vete për secilën politikë rrugëzimi në vend që të ndryshoni një ndërsa e përdorin punë të tjera.
Nëse asnjë alternativë nuk shpjegon rrugën e aplikacionit, krahasoni një Session të izoluar me aplikacionin në të njëjtin mjedis ekzekutimi dhe me të njëjtin destinacion të padëmshëm. Shënoni ndryshoret proxy të pranishme, vlerën e trust_env dhe nëse thirrja kalon proxies; përjashtoni URL me kredenciale nga regjistrat e ndarë. Suksesi i izoluar e drejton kontrollin tjetër te krijimi i Session, përshtatësit, rrjedhat e kërkesave të përgatitura ose transportet e personalizuara. Testi i mjedisit me curl nuk përcakton sjelljen vetjake të bashkimit të Requests.