실제 리소스 URL은 그대로 두고 프록시를 URLConnection에 별도로 전달하세요:

URI destination = URI.create("https://example.com/report");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
    new InetSocketAddress("203.0.113.10", 8080));
URLConnection connection = destination.toURL().openConnection(proxy);
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);

java.net 임포트를 사용하고 문서에 나온 프록시 주소를 사용 중인 HTTP 서비스나 HTTP 프록시 목록에서 고른 후보로 바꾸세요. 연결은 여전히 https://example.com/report을 요청하며, 프록시는 그 경로일 뿐입니다. 이 설정은 자격 증명도, JVM의 모든 HTTP 라이브러리도 구성하지 않습니다.

프록시를 리소스 URL에 대입하는 잘못된 코드는 보고서 대신 프록시의 웹 페이지나 오류를 빠르게 받을 수 있습니다. 그 빠른 응답을 더 나은 성능으로 해석하기 전에 상태, 내용, 실제 목적지를 비교하세요.

openConnection(Proxy)은 리소스 경로를 목적지 URI에 그대로 둡니다. HTTPS 인증서 검증을 위해서도 해당 호스트 이름을 유지하세요. 중개자로 바꾸면 라우팅 오류에 이름 불일치가 추가될 수 있습니다.

애플리케이션이 다른 HTTP 클라이언트를 만든다면 그 클라이언트나 연결 팩토리 인터페이스를 사용하세요. URLConnection 프록시 객체는 이 API를 호출하지 않는 경로를 구성할 수 없습니다.

관련 글