أعد استخدام موارد OkHttp أثناء اختيار وكيل مختلف
اختر عميل OkHttp المهيأ بوكيل قبل إنشاء الطلب وافهم ما يشاركه newBuilder.
لا يمتلك طلب OkHttp حقلاً عامًا قابلًا للتغيير للوكيل. اختر العميل ذا المسار المقصود قبل إنشاء طلبه.
عندما ينبغي أن يبقى بقية الإعداد مشتركًا، اشتق العميل الموجّه من عميل قائم:
OkHttpClient routed = baseClient.newBuilder()
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080)))
.build();نقطة النهاية للتوضيح فقط. يمكن لنقاط نهاية HTTP العامة من قائمة وكلاء HTTP أن تملأ عنوان المقبس هذا لمسار خدمة عامة مسموح، بشرط ألا يوفّر نهج العميل الأساسي أي بيانات اعتماد وكيل لنقطة النهاية الجديدة. توثّق OkHttp أن newBuilder يشارك موارد تجمع الاتصالات والخيوط مع العميل الأصلي. هذا لا يعني أن مقبسًا أُنشئ عبر وكيل واحد يمكن إعادة تصنيفه كمسار آخر. لا تزال أهلية الاتصال تعتمد على المسار وإعداد العنوان.
للعمل المتكرر، احتفظ بمجموعة محدودة من العملاء مفهرسة حسب نهج التوجيه الذي تحتاجه فعلاً. تجنب خريطة غير محدودة تحتوي مفاتيحها على كل حساب مؤقت أو تنويع وكيل لوحظ يومًا.
تؤثر مشاركة الموارد أيضًا على الإيقاف. قد يؤثر إغلاق ذاكرة تخزين مؤقت مشتركة أو إيقاف موزّع مشترك على عملاء مشتقين آخرين يستخدمون تلك الموارد. امنح ملكية الموارد عمرًا واضحًا على مستوى التطبيق بدلًا من معاملة كل عميل مشتق كحزمة شبكة معزولة.
أخيرًا، أدرج هوية الوكيل المختار في بيانات وصفية خاصة بالطلب نفسه. لا يمكن لمتغير عام “آخر وكيل مختار” تحديد مسار عدة طلبات متزامنة.