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 пункту прызначэння менеджэра злучэнняў; аддаленае развязанне імён патрабуе асобна праверанай канфігурацыі.

Падобныя артыкулы