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

من موسوعة حسوب
< Python‏ | urllib‏ | request
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>HTTPRedirectHandler.redirect_request()‎‎</code> في بايثون}}</noinclude> يعيد التابع كائن Request...'
 
لا ملخص تعديل
سطر 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 إن لم تتمكن من إطلاق الاستثناء وكان بإمكان معالج آخر القيام بذلك.
يعيد التابع كائن Request أو القيمة None استجابةً لعملية إعادة توجيه.
== البنية العامة ==
 
<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، ويستخدم التابع الطريقة ذاتها للقيام بذلك.
== البنية العامة ==
<syntaxhighlight lang="python3">
HTTPRedirectHandler.redirect_request(req, fp, code, msg, hdrs, newurl)
</syntaxhighlight>
== مصادر ==
== مصادر ==
* [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:19، 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، ويستخدم التابع الطريقة ذاتها للقيام بذلك.

مصادر