الصنف urllib.request.FancyURLopener()‎‎ في بايثون

من موسوعة حسوب
< Python‏ | urllib‏ | request
اذهب إلى التنقل اذهب إلى البحث

ملاحظة: هذا الصنف مهمل في الإصدار 3.3 وما بعده من بايثون.

يتفرّع الصنف FancyURLopener من الصنف URLopener ويقدّم معالجة افتراضية لشيفرات استجابة HTTP التالية: 301، 302، 303، 307، 401. تستخدم الترويسة Location لشيفرات الاستجابة 30x وذلك لجلب عنوان URL الحقيقي، في حين تُجرى عملية استيثاق HTTP بسيطة لشيفرة الاستجابة 401 (والتي تعني أن عملية الاستيثاق مطلوبة Authentication required). تكون عملية التعاود محدّدة في شيفرات الاستجابة 30x بقيمة الخاصية maxtries والتي تأخذ القيمة الافتراضية 10.

يُستدعى التابع http_error_default()‎ لباقي شيفرات الاستجابة ويمكن إعادة تعريف هذا التابع في الأصناف الفرعية لمعالجة الأخطاء بالصورة الملائمة.

ملاحظات:

  • حسب ما ورد في المعيار RFC 2616 فإنّ الاستجابتين 301 و 302 لطلبات POST يجب أن لا يعاد توجيهها تلقائيًا دون موافقة المستخدم، غير أنّ المتصفّحات في الواقع تسمح بإعادة توجيه هذه الاستجابات تلقائيًا وذلك بتغيير نوع الطلب من POST إلى GET، ويستخدم التابع الطريقة ذاتها للقيام بذلك.
  • عند إجراء عملية استيثاق بسيطة يستدعي الكائن FancyURLopener تابعه prompt_user_passwd()‎. يطلب التابع من المستخدم إدخال المعلومات المطلوبة في الطرفية. يمكن للأصناف الفرعية أن تعيد تعريف هذا التابع ليدعم أمورًا أخرى وبحسب الحاجة.

البنية العامة

urllib.request.FancyURLopener(...)

المعاملات

معاملات الدالة البانية مشابهة لنظيراتها في الصنف URLopener.

توابع الصنف FancyURLopener

يقدّم الصنف FancyURLopener تابعًا إضافيًا يجب تحميله بمعاملات إضافية ليعمل بطريقة ملائمة:

التابع prompt_user_passwd()

يعيد التابع المعلومات المطلوبة لتوثيق المستخدم عند المضيف المعطى في حقل الأمان security realm المحدّد.

مصادر