ضبط مهلة لوكيل Apache HttpClient 5 الذي يتوقف أثناء CONNECT
اضبط مهلة الإدخال والإخراج للمقبس في مدير الاتصالات لإعداد النفق، إلى جانب مهلة اتصال TCP المنفصلة.
قبل الوكيل اتصال TCP لكنه لم يُكمل رد CONNECT أبدًا. لم يبدأ رد الموقع بعد؛ وقد تترك المهلة الموجهة إلى ذلك الرد اللاحق فقط هذا الإعداد ينتظر بلا حد.
في Apache HttpClient 5.3.1، اضبط الإعدادات الافتراضية لمدير الاتصالات:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();استخدم فئات Apache HttpComponents 5 ضمن org.apache.hc، مع Timeout في حزمة الأدوات core5. أبقِ العميل مخصصًا لعمله وأغلقه. لاختبار HTTP عام معزول، يوفّر أحد المرشحين من قائمة وكلاء HTTP نقطة النهاية؛ أبقِ الوجهة ثابتة عند مقارنة المهل.
| الحد | الانتظار المعالج |
|---|---|
| مهلة الاتصال | إنشاء الاتصال |
| مهلة المقبس | عدم نشاط الإدخال والإخراج الافتراضي، بما في ذلك تبادل CONNECT |
| الحصول من المجمع / استجابة التطبيق | مراحل أخرى تُضبط بشكل منفصل |
بعد CONNECT، قد يحتاج TLS إلى حد إعداد خاص به عبر إعداد TLS في HttpClient 5. ميّز أيضًا بين عدم النشاط والموعد النهائي الكلي: فقد يؤدي تدفق البايتات المتقطع أو تبادلات المصادقة المتكررة إلى إطالة الوقت الإجمالي. استخدم سياسة الموعد النهائي أو الإلغاء المدعومة في التطبيق من أجل ميزانية واحدة للعملية بأكملها.