إذا أشار 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. يتحكم ذلك في إدخالات التعيين المقدمة؛ واختر عن قصد ما يخص المخططات أو المضيفين الآخرين الذين يستخدمهم التطبيق. قد ترث خدمة أو بيئة تطوير أو حاوية أو منفّذ 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.

مقالات ذات صلة