Ustawienia SOCKS w Apache HttpClient 5.5 w menedżerze połączeń
Skonfiguruj politykę gniazd puli za pomocą SocketConfig zamiast trasy proxy HTTP lub własnej fabryki gniazd.
Apache HttpClient 5.5 zawiera ścieżkę konfiguracji SOCKS w ustawieniach gniazd menedżera połączeń. Jego utrzymywany przykład używa 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();
Fragment używa pakietów org.apache.hc HttpClient 5 oraz SocketConfig HttpCore. Żądania wykonywane tym klientem korzystają z puli skonfigurowanej powyżej. Zamknij klienta, gdy zakończy się zakres własności aplikacji.
Umieść rzeczywisty adres URL witryny w żądaniu jak zwykle. Dla dozwolonych żądań do witryn publicznych bez uwierzytelniania proxy lista proxy SOCKS oferuje adresy kandydujące; wybierz wersję SOCKS obsługiwaną przez rzeczywiste środowisko uruchomieniowe. Adres SOCKS konfiguruje transport używany do jego osiągnięcia; nie jest to trasa proxy przekazującego HTTP podana jako HttpHost.
To są domyślne ustawienia gniazd tego menedżera. Aplikacja korzystająca z resolvera SocketConfig dla każdej trasy powinna zastosować żądane ustawienie SOCKS poprzez tę politykę. Przykład zachowuje zwykłą politykę DNS miejsca docelowego menedżera połączeń; zdalne rozwiązywanie nazw wymaga osobno zweryfikowanej konfiguracji.