Python Requests में Session प्रॉक्सी और परिवेश की प्राथमिकता
session.proxies, परिवेश चर, अनुरोध-विशिष्ट विकल्प और trust_env साथ हों तो Python Requests की रूटिंग अनुमान योग्य बनाएँ।
यदि session.proxies एक एंडपॉइंट बताता है, लेकिन स्क्रिप्ट shell की प्रॉक्सी इस्तेमाल करती है, तो वही डिक्शनरी फिर असाइन करने से टकराव नहीं मिटेगा। Requests परिवेश की प्रॉक्सी सेटिंग को Session डिफ़ॉल्ट से ऊपर रखकर मिला सकता है। तय करें कि Session परिवेश से सेटिंग खोजता रहे या नहीं।
परिवेश खोज चालू रखें, रास्ते अनुरोध में दें
इस Session/परिवेश टकराव से बचने के लिए Requests की सलाह के अनुसार हर कॉल को स्पष्ट मान दें:
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 एंडपॉइंट की तुलना करते समय Session नीति स्थिर रखकर HTTP प्रॉक्सी सूची से उम्मीदवार चुनें। यह दिए गए मैपिंग के आइटम नियंत्रित करता है; अनुप्रयोग की दूसरी स्कीम या होस्ट के लिए भी सोचकर चयन करें। सेवा, 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 रखें।
दोनों विकल्प अनुप्रयोग का रास्ता न समझाएँ तो उसी रनटाइम और हानिरहित गंतव्य पर पृथक Session की अनुप्रयोग से तुलना करें। मौजूद प्रॉक्सी चर, trust_env का मान और कॉल में proxies दिया जाता है या नहीं, लिखें; साझा लॉग में क्रेडेंशियल वाले URL न रखें। पृथक सफलता अगली जाँच को Session निर्माण, अडैप्टर, तैयार अनुरोध प्रवाह या कस्टम ट्रांसपोर्ट की ओर ले जाती है। curl का परिवेश परीक्षण Requests के अपने विलय व्यवहार को तय नहीं करता।