الفرق بين المراجعتين لصفحة: «Python/urllib/request/FancyURLopener»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>urllib.request.FancyURLopener()</code> في بايثون}}</noinclude> '''ملاحظة:''' هذا الصنف مهمل ف...' |
لا ملخص تعديل |
||
سطر 2: | سطر 2: | ||
'''ملاحظة:''' هذا الصنف مهمل في الإصدار 3.3 وما بعده من بايثون. | '''ملاحظة:''' هذا الصنف مهمل في الإصدار 3.3 وما بعده من بايثون. | ||
يتفرّع الصنف FancyURLopener من الصنف URLopener ويقدّم معالجة افتراضية لشيفرات استجابة HTTP التالية: | يتفرّع الصنف <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>. | ||
يُستدعى التابع <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 المحدّد.