إعدادات SOCKS في Apache HttpClient 5.5 على مدير الاتصالات
اضبط سياسة المقبس للمجمّع باستخدام SocketConfig بدلاً من مسار وكيل HTTP أو مصنع مقابس مخصص.
يتضمن Apache HttpClient 5.5 مسار تكوين SOCKS في إعدادات المقبس الخاصة بمدير الاتصالات. يستخدم مثاله المُصان setSocksProxyAddress:
InetSocketAddress socks =
new InetSocketAddress("proxy.example.net", 1080);
PoolingHttpClientConnectionManager manager =
PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultSocketConfig(
SocketConfig.custom()
.setSocksProxyAddress(socks)
.build()
)
.build();
CloseableHttpClient client = HttpClients.custom()
.setConnectionManager(manager)
.build();
يستخدم المقطع حزم org.apache.hc الخاصة بـ HttpClient 5 وSocketConfig الخاص بـ HttpCore. الطلبات التي تُنفَّذ بهذا العميل تستخدم المجمّع المهيأ أعلاه. أغلق العميل عند انتهاء نطاق ملكية التطبيق.
ضع عنوان URL الفعلي للموقع على الطلب كالمعتاد. بالنسبة لطلبات المواقع العامة المسموح بها دون مصادقة وكيل، تقدم قائمة وكلاء SOCKS عناوين مرشحة؛ اختر إصدار SOCKS الذي يدعمه وقت التشغيل الفعلي. عنوان SOCKS يهيئ النقل المستخدم للوصول إليه؛ وليس مسار وكيل أمامي HTTP يُقدَّم كـ HttpHost.
هذه إعدادات مقبس افتراضية لهذا المدير. التطبيق الذي يستخدم محلل SocketConfig لكل مسار ينبغي أن يطبق إعداد SOCKS المطلوب عبر تلك السياسة بدلاً من ذلك. يحتفظ المثال بسياسة DNS العادية للوجهة الخاصة بمدير الاتصالات؛ ويتطلب حل الأسماء عن بُعد تكوينًا مُتحقَّقًا منه بشكل منفصل.