الفرق بين المراجعتين لصفحة: «Python/urllib/request/HTTPRedirectHandler/redirect request»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>HTTPRedirectHandler.redirect_request()</code> في بايثون}}</noinclude> يعيد التابع كائن Request...' |
لا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>HTTPRedirectHandler.redirect_request()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>HTTPRedirectHandler.redirect_request()</code> في بايثون}}</noinclude> | ||
يعيد التابع كائن Request أو القيمة None استجابةً لعملية إعادة توجيه. يُستدعى التابع عند استخدام التوابع http_error_30*() بالطريقة الافتراضية عند استقبال عملية إعادة توجيه من المخدّم. إن أجريت عملية إعادة التوجيه، فإنّ التابع سيعيد كائن Request جديدًا وذلك للسماح لتوابع http_error_30*() بإعادة التوجيه إلى العنوان الجديد newurl. إن لم يحدث ما سبق فحاول إطلاق الاستثناء HTTPError إن لم يُعالج هذا العنوان من قبل أيّ معالج آخر، أو أعد القيمة None إن لم تتمكن من إطلاق الاستثناء وكان بإمكان معالج آخر القيام بذلك. | يعيد التابع كائن <code>[[Python/urllib/request/Request|Request]]</code> أو القيمة <code>None</code> استجابةً لعملية إعادة توجيه. | ||
== البنية العامة == | |||
<syntaxhighlight lang="python3"> | |||
HTTPRedirectHandler.redirect_request(req, fp, code, msg, hdrs, newurl) | |||
</syntaxhighlight>يُستدعى التابع عند استخدام التوابع <code>http_error_30*()</code> بالطريقة الافتراضية عند استقبال عملية إعادة توجيه من المخدّم. إن أجريت عملية إعادة التوجيه، فإنّ التابع سيعيد كائن <code>[[Python/urllib/request/Request|Request]]</code> جديدًا وذلك للسماح لتوابع <code>http_error_30*()</code> بإعادة التوجيه إلى العنوان الجديد <code>newurl</code>. إن لم يحدث ما سبق فحاول إطلاق الاستثناء <code>HTTPError</code> إن لم يُعالج هذا العنوان من قبل أيّ معالج آخر، أو أعد القيمة <code>None</code> إن لم تتمكن من إطلاق الاستثناء وكان بإمكان معالج آخر القيام بذلك. | |||
'''ملاحظة:''' | '''ملاحظة:''' | ||
إن طريق الاستخدام الافتراضية لهذا التابع لا تتبع المعيار RFC 2616 بدقّة، والذي ينصّ على أنّ الاستجابتين 301 و 302 للطلبات من نوع POST يجب أن لا يعاد توجيهها تلقائيًا دون موافقة المستخدم. تسمّح المتصفّحات في الواقع بإعادة توجيه هذه الاستجابات تلقائيًا وذلك بتغيير نوع الطلب من POST إلى GET، ويستخدم التابع الطريقة ذاتها للقيام بذلك. | إن طريق الاستخدام الافتراضية لهذا التابع لا تتبع المعيار RFC 2616 بدقّة، والذي ينصّ على أنّ الاستجابتين 301 و 302 للطلبات من نوع POST يجب أن لا يعاد توجيهها تلقائيًا دون موافقة المستخدم. تسمّح المتصفّحات في الواقع بإعادة توجيه هذه الاستجابات تلقائيًا وذلك بتغيير نوع الطلب من POST إلى GET، ويستخدم التابع الطريقة ذاتها للقيام بذلك. | ||
== مصادر == | == مصادر == | ||
* [https://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.redirect_request صفحة Extensible library for opening URLs في توثيق بايثون الرسمي.] | * [https://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.redirect_request صفحة Extensible library for opening URLs في توثيق بايثون الرسمي.] |
المراجعة الحالية بتاريخ 21:22، 31 يناير 2019
يعيد التابع كائن Request
أو القيمة None
استجابةً لعملية إعادة توجيه.
البنية العامة
HTTPRedirectHandler.redirect_request(req, fp, code, msg, hdrs, newurl)
يُستدعى التابع عند استخدام التوابع http_error_30*()
بالطريقة الافتراضية عند استقبال عملية إعادة توجيه من المخدّم. إن أجريت عملية إعادة التوجيه، فإنّ التابع سيعيد كائن Request
جديدًا وذلك للسماح لتوابع http_error_30*()
بإعادة التوجيه إلى العنوان الجديد newurl
. إن لم يحدث ما سبق فحاول إطلاق الاستثناء HTTPError
إن لم يُعالج هذا العنوان من قبل أيّ معالج آخر، أو أعد القيمة None
إن لم تتمكن من إطلاق الاستثناء وكان بإمكان معالج آخر القيام بذلك.
ملاحظة:
إن طريق الاستخدام الافتراضية لهذا التابع لا تتبع المعيار RFC 2616 بدقّة، والذي ينصّ على أنّ الاستجابتين 301 و 302 للطلبات من نوع POST يجب أن لا يعاد توجيهها تلقائيًا دون موافقة المستخدم. تسمّح المتصفّحات في الواقع بإعادة توجيه هذه الاستجابات تلقائيًا وذلك بتغيير نوع الطلب من POST إلى GET، ويستخدم التابع الطريقة ذاتها للقيام بذلك.