SOCKS настройки в Apache HttpClient 5.5 при мениджъра на връзките
Конфигурирайте socket политиката на пула чрез SocketConfig вместо HTTP прокси маршрут или собствена socket фабрика.
Apache HttpClient 5.5 включва път за SOCKS конфигурация в socket настройките на мениджъра на връзките. Поддържаният му пример използва 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.
Това са настройки по подразбиране за socket на този мениджър. Приложение, което използва resolver за SocketConfig по маршрут, трябва да приложи желаната SOCKS настройка чрез тази политика вместо това. Примерът запазва нормалната DNS политика за дестинацията на мениджъра на връзките; отдалеченото разрешаване на имена изисква отделно проверена конфигурация.