Apache HttpAsyncClient 5에서 IOReactorConfig로 SOCKS 프록시 설정하기
기존 클라이언트의 소켓 설정을 적용하지 말고, HttpAsyncClient 5를 시작하기 전에 reactor에 프록시 주소를 지정하세요.
import java.net.InetSocketAddress;
import org.apache.hc.core5.reactor.IOReactorConfig;
import org.apache.hc.client5.http.impl.async.HttpAsyncClients;
var reactor = IOReactorConfig.custom()
.setSocksProxyAddress(new InetSocketAddress("proxy.example", 1080))
.build();
var client = HttpAsyncClients.custom()
.setIOReactorConfig(reactor)
.build();
client.start();필요한 비동기 요청은 이 클라이언트로 보내고 실제 대상 URI는 그대로 유지하세요. 작업하는 동안 클라이언트를 유지한 뒤 끝나면 닫으세요. 허용된 공개 대상 요청에는 SOCKS 프록시 목록에서 호스트와 포트 후보를 얻을 수 있습니다. reactor가 지원하는 SOCKS 버전에 맞추세요.
이 비동기 소켓 경로는 reactor가 제어합니다. HTTP HttpHost 프록시 경로나 기존 연결 관리자의 SocketConfig는 다른 인터페이스입니다.
지원되는 SOCKS 사용자 이름/비밀번호 인증을 사용하려면 reactor builder에 setSocksProxyUsername와 setSocksProxyPassword도 설정하세요. 요청 실행 중에 공유 설정을 바꾸지 말고 start 전에 설정을 마치세요.