يوفر Tornado واجهة واحدة لعميل HTTP غير متزامن، لكن تحتها تنفيذات مختلفة. لذلك قد تفشل خيارات الوكيل بسبب التنفيذ المختار حتى عندما تكون نقطة نهاية الوكيل صحيحة.

تُحدد وثائق عميل HTTP SimpleAsyncHTTPClient كتنفيذ افتراضي، وتوثق البديل القائم على curl. ولخيارات الطلب مثل proxy_host ملاحظات دعم خاصة بكل تنفيذ. اقرأ هذه الملاحظات قبل إضافة الخيارات إلى استدعاء fetch.

اضبط قبل إنشاء العميل

في بيئة مجهزة مسبقًا بالواجهة الخلفية curl، يمكن للتطبيق اختيارها قبل إنشاء عميله المشترك:

from tornado.httpclient import AsyncHTTPClient

AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()

ثم استخدم خيارات الطلب الموثقة للمضيف والمنفذ والمصادقة والمهلة في الاستدعاء المقصود. أبقِ اسم المضيف منفصلًا عن المنفذ الرقمي. اختيار الواجهة الخلفية لا يختار نقطة نهاية وكيل بحد ذاته. بالنسبة لمسار HTTP عام مسموح، توفر قائمة وكلاء HTTP مرشحات المضيف والمنفذ لتلك الخيارات.

إنشاء العميل مهم لأن التطبيق أو الإطار قد ينشئ عميل HTTP ويحتفظ به قبل تشغيل هذا الكود. افحص المثيل الفعلي المستخدم في الطلب الفاشل بدلًا من إنشاء عميل آخر لاحقًا وافتراض أنه يفسر الأول.

للتشخيص، سجّل الواجهة الخلفية النشطة وإصدار المكتبة الأساسية مع المرحلة الفاشلة. ميّز بين خيار طلب غير مدعوم ومهلة شبكة واستجابة HTTP أعادها الوكيل. تؤدي تلك الملاحظات إلى إصلاحات مختلفة.

مقالات ذات صلة