아웃바운드 HTTP 요청을 보내는 Jenkins 플러그인은 Jenkins의 공개 프록시 인식 클라이언트 도우미를 사용할 수 있습니다.

HttpClient client = ProxyConfiguration.newHttpClient();
HttpRequest request = ProxyConfiguration.newHttpRequestBuilder(
        URI.create("https://service.example/status"))
    .GET()
    .build();
HttpResponse<Void> response = client.send(
    request, HttpResponse.BodyHandlers.discarding());

이 조각은 hudson.ProxyConfiguration, java.net.URI, java.net.http 타입을 사용합니다. 입출력과 중단 처리는 호출자가 평소의 플러그인 흐름으로 담당합니다. 본문 처리기는 응답 본문을 소비하고 버립니다.

newHttpClient와 그 빌더 인터페이스는 Jenkins 2.379부터 제공됩니다. 컨트롤러 JVM에서는 Jenkins가 지원하는 프록시 구성을 적용합니다. 요청마다 새로 만들지 말고 클라이언트를 재사용하세요.

이렇게 하면 컨트롤러에 저장된 프록시 이름과 비밀번호를 별도로 구성한 전송 계층으로 복사하지 않아도 됩니다. 컨트롤러 화면에 프록시 항목이 있다는 이유만으로 별도로 만든 Java HTTP 클라이언트가 프록시를 인식하게 되지는 않습니다.

대상에 Authorization 헤더를 보내는 요청이라면 Java 17 이상에서 문서화된 인증 프록시 제한을 확인하세요. 문서는 바로 이 조합을 지적하며, 이 도우미를 선택해도 그 클라이언트 제한이 사라지지는 않습니다.

관련 글