Python Requests-ის Session პროქსიები და გარემოს პრიორიტეტი
გახადეთ Python Requests-ის მარშრუტიზაცია პროგნოზირებადი session.proxies-ის, გარემოს ცვლადების, მოთხოვნის პარამეტრებისა და trust_env-ის ურთიერთქმედებისას.
თუ session.proxies ერთ ბოლო წერტილზე მიუთითებს, სკრიპტი კი გარსის პროქსის იყენებს, იმავე ლექსიკონის ხელახლა მინიჭება კონფლიქტს ვერ გადაჭრის. Requests-მა შეიძლება გარემოს პროქსის პარამეტრები Session-ის ნაგულისხმევებზე მაღალი პრიორიტეტით გააერთიანოს. გადაწყვიტეთ, უნდა განაგრძოს თუ არა Session-მა პარამეტრების გარემოდან აღმოჩენა.
შეინარჩუნეთ გარემოს აღმოჩენა, გზები მოთხოვნაში მიუთითეთ
გადასცით მკაფიო მნიშვნელობები ცალკეულ გამოძახებას, როგორც Requests ამ Session/გარემოს კონფლიქტის თავიდან აცილებისთვის გვირჩევს:
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()
ადგილობრივი მსმენელი თქვენით შეცვალეთ. საჯარო HTTP წერტილების შედარებისას კანდიდატები HTTP პროქსიების სიიდან შეარჩიეთ და Session-ის პოლიტიკა უცვლელად დატოვეთ. ეს მოცემული შესაბამისობის ჩანაწერებს მართავს; აპლიკაციის სხვა სქემებისა თუ ჰოსტებისთვისაც გააზრებული არჩევანი გააკეთეთ. სერვისმა, IDE-მ, კონტეინერმა ან CI გამშვებმა შეიძლება ტერმინალისგან განსხვავებული გარემო მემკვიდრეობით მიიღოს.
Session-მა საკუთარი პარამეტრები მართოს
თუ აპლიკაციამ პროქსი გარემოდან არ უნდა აღმოაჩინოს, პოლიტიკა პირველ მოთხოვნამდე დააყენეთ:
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 ასევე მოქმედებს გარემოსთან დაკავშირებულ სერტიფიკატების კონფიგურაციასა და ავტომატურ netrc ავთენტიფიკაციაზე. არჩევამდე გაითვალისწინეთ ეს დამოკიდებულებები. დამტკიცებული კერძო CA პაკეტისთვის შეგიძლიათ მკაფიო გზა გადასცეთ:
response = session.get(
"https://example.com/",
timeout=(5, 15),
verify="/path/to/approved-ca-bundle.pem",
)
გამოიყენეთ ნამდვილად დამტკიცებული პაკეტი და შემოწმება ჩართული დატოვეთ. ყოველი მარშრუტიზაციის პოლიტიკისთვის ცალკე Session გქონდეთ, ნაცვლად ერთის შეცვლისა, როცა მას სხვა სამუშაოები იყენებს.
თუ არცერთი ვარიანტი აპლიკაციის გზას არ ხსნის, იზოლირებული Session აპლიკაციას იმავე გაშვების გარემოსა და უვნებელ დანიშნულებაზე შეადარეთ. ჩაიწერეთ არსებული პროქსის ცვლადები, trust_env მნიშვნელობა და გადასცემს თუ არა გამოძახება proxies-ს; ავტორიზაციის მონაცემებიანი URL-ები საერთო ჟურნალებში არ შეიტანოთ. იზოლირებული წარმატება შემდეგ შემოწმებას Session-ის შექმნაზე, ადაპტერებზე, მომზადებული მოთხოვნების ნაკადებზე ან მორგებულ ტრანსპორტებზე მიმართავს. curl-ით გარემოს ტესტი თავად Requests-ის გაერთიანების ქცევას ვერ განსაზღვრავს.