Session-proxy’s yn Python Requests en foarrang fan de omjouwing
Meitsje rûtearring yn Python Requests foarsisber as session.proxies, omjouwingsfariabelen, fersykynstellingen en trust_env gearwurkje.
As session.proxies nei ien einpunt wiist mar it skript de proxy fan de shell brûkt, lost itselde wurdboek opnij tawize it konflikt net op. Requests kin proxyynstellingen út de omjouwing mei foarrang boppe Session-standertwearden gearfoegje. Kies oft Session ynstellingen út de omjouwing ûntdekken bliuwe moat.
Behâld omjouwingsûntdekking, jou rûtes mei yn it fersyk
Jou eksplisite wearden oan de aparte oanrop, sa’t Requests oanret om dit konflikt tusken Session en omjouwing foar te kommen:
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()
Ferfang de lokale lústerder troch dyn eigen. Ferlikest iepenbiere HTTP-einpunten, kies dan kandidaten út de list mei HTTP-proxy’s en hâld it Session-belied gelyk. Dit bestjoert de opjûne mappingyngongen; kies ek bewust foar oare skema’s of hosts dy’t de tapassing brûkt. In tsjinst, IDE, kontener of CI-útfierder kin in oare omjouwing ervje as dyn terminal.
Lit Session syn eigen ynstellingen beheare
As de tapassing gjin proxy’s út de omjouwing ûntdekke moat, set it belied foar it earste fersyk:
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 hat ek ynfloed op omjouwingsbûne sertifikaatynstellingen en automatyske netrc-autentikaasje. Hâld rekken mei dy ôfhinklikheden foar de kar. Foar in goedkarde private CA-bondel kinst in eksplisyt paad jaan:
response = session.get(
"https://example.com/",
timeout=(5, 15),
verify="/path/to/approved-ca-bundle.pem",
)
Brûk de wier goedkarde bondel en lit ferifikaasje oanstean. Hâld foar elk rûtearringsbelied in aparte Session ynstee fan ien te feroarjen wylst oar wurk dy brûkt.
Ferklearret gjin alternatyf de rûte fan de tapassing, ferlykje dan in isolearre Session mei de tapassing yn deselde runtime en nei itselde ûnskuldige doel. Lis oanwêzige proxyfariabelen, de wearde fan trust_env en it trochjaan fan proxies fêst; hâld URL’s mei oanmeldgegevens bûten dielde logs. Sukses yn isolaasje rjochtet it folgjende ûndersyk op Session-oanmeitsjen, adapters, ferwurking fan tariede fersiken of eigen transporten. In curl-omjouwingstest beslút net oer it eigen gearfoeggedrach fan Requests.