Requests PreparedRequest மற்றும் தவறிய சூழல் அமைப்புகள்
ஒவ்வொரு கீழ்நிலை sendஉம் ப்ராக்ஸியைப் புறக்கணிக்கும் எனக் கருதாமல், உங்கள் தயாரிக்கப்பட்ட கோரிக்கைகளை Requestsன் வழக்கமான ப்ராக்ஸி, CA கையாளுதலுடன் பொருத்துங்கள்.
கோரிக்கை session.get() மூலம் இயங்கியும் PreparedRequest ஆக மாற்றியெழுதியபின் சான்றிதழ் சரிபார்ப்பில் தோற்கலாம். கீழ்நிலை send பாதை வழக்கமான request முறையின் அதே சூழல் இணைப்பை செய்யாது.
import requests
with requests.Session() as session:
request = requests.Request("GET", "https://example.com/")
prepared = session.prepare_request(request)
settings = session.merge_environment_settings(
prepared.url, {}, None, None, None
)
response = session.send(
prepared,
timeout=(5, 15),
**settings,
)
response.raise_for_status()
print(response.status_code)
விரும்பிய URL மாற்றங்களுக்குப் பிறகு இறுதி தயாரிக்கப்பட்ட URLஐக் கொண்டு இணைக்கவும். ப்ராக்ஸி, விலக்கு முடிவுகள் இலக்கைப் பொறுத்தவை; முந்தைய URL அமைப்புகள் உண்மையில் அனுப்பும் கோரிக்கைக்குத் தவறாகலாம்.
CA அமைப்பு எளிதில் தவறுகிறது
வழக்கமான சூழல் நம்பிக்கை இயக்கப்பட்டு சரிபார்ப்பு வெளிப்படையாக மேலெழுதப்படாவிட்டால் இணைப்பு REQUESTS_CA_BUNDLE மற்றும் அதன் மாற்று CURL_CA_BUNDLEஐக் கருதும். இயல்பான verifyயுடன் நேரடி send இந்த CA தேடலைச் செய்யாது. சரிபார்ப்பை நிறுத்துவது வேண்டிய சான்றிதழ் சேமிப்பைத் தராமல் வேறுபாட்டை மறைக்கும்.
Session.prepare_request() அமர்வின் தயாரிப்பு நடத்தையையும் பயன்படுத்துகிறது. நேரடியாக Request.prepare() மூலம் கோரிக்கை உருவாக்குவது தனித்தேர்வு; அமர்வுக் குக்கிகளோ பிற தயாரிப்போ தானாகப் பயன்படும் என எதிர்பார்க்க வேண்டாம்.
ப்ராக்ஸிக்கு இன்னும் குறிப்பான விதி உள்ளது
ஒவ்வொரு PreparedRequestஉம் ப்ராக்ஸி சூழல் மாறிகளைப் புறக்கணிக்கிறது என்பது துல்லியமல்ல. Requests 2.34.2ல் proxies பெயர்வாதம் இல்லாதபோது send இயல்பான ப்ராக்ஸிகளைத் தீர்மானிக்கும். sendக்கு proxies={} கொடுப்பது அந்தக் குறிப்பிட்ட இயல்புத் தீர்மானக் கிளையைத் தவிர்க்கும்.
merge_environment_settingsக்கு தரும் காலி அகராதியின் பங்கு வேறு: sendக்கு அனுப்பும்முன் இணைப்பு அதில் பொருத்தமான சூழல் பாதைகளை நிரப்பலாம். இரு குறியீடுகளில் காலி அகராதி மட்டும் பார்த்தால் அதை ஏற்கும் வேறு முறைகள் கவனிக்கப்படாது.
தனிப்பயன் கோரிக்கை உருவாக்கக் குறியீட்டில் தயாரிப்பு, சூழல் இணைப்பு, அனுப்புதல் மூன்றையும் ஒன்றாக வையுங்கள். பயன்பாடு வேண்டுமென்றே trust_env=False பயன்படுத்தும்போது இணைப்பு அந்தக் கொள்கையை மதிக்கிறது; சூழலை அறிந்தே நிறுத்திய கிளையண்டுக்கு அமைப்பைத் திணிக்காது.