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()
مقامی listener کو اپنے سے بدلیں۔ عوامی HTTP اینڈپوائنٹ کا موازنہ کرتے ہوئے Session پالیسی برقرار رکھ کر HTTP پراکسی فہرست سے امیدوار چنیں۔ یہ دی گئی mapping کی اندراجات کو کنٹرول کرتا ہے؛ ایپ کی دوسری اسکیموں یا ہوسٹ کے لیے بھی سوچ کر انتخاب کریں۔ سروس، 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 کے اپنے انضمام کے رویے کو طے نہیں کرتا۔