الفرق بين المراجعتين لصفحة: «Python/urllib/request/FancyURLopener»

من موسوعة حسوب
< Python‏ | urllib‏ | request
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>urllib.request.FancyURLopener()‎‎</code> في بايثون}}</noinclude> '''ملاحظة:''' هذا الصنف مهمل ف...'
 
لا ملخص تعديل
سطر 2: سطر 2:
'''ملاحظة:''' هذا الصنف مهمل في الإصدار 3.3 وما بعده من بايثون.
'''ملاحظة:''' هذا الصنف مهمل في الإصدار 3.3 وما بعده من بايثون.


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


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


'''ملاحظات:'''
'''ملاحظات:'''


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


== البنية العامة ==
== البنية العامة ==
سطر 20: سطر 19:
== المعاملات ==
== المعاملات ==


معاملات الدالة البانية مشابهة لنظيراتها في الصنف URLopener.
معاملات الدالة البانية مشابهة لنظيراتها في الصنف <code>[[Python/urllib/request/URLopener|URLopener]]</code>.


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


=== التابع <code>prompt_user_passwd()‎</code> ===
=== التابع <code>prompt_user_passwd()‎</code> ===

مراجعة 19:55، 3 فبراير 2019

ملاحظة: هذا الصنف مهمل في الإصدار 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 المحدّد.

مصادر