Un complemento de Jenkins que fai unha solicitude HTTP de saída pode usar a axuda pública de cliente con proxy de 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());

O fragmento usa os tipos hudson.ProxyConfiguration, java.net.URI e java.net.http. O chamador xestiona a entrada e a saída, así como a interrupción, co fluxo normal do complemento. O xestor do corpo consome e descarta o corpo da resposta.

newHttpClient e a súa interface de construtor están dispoñibles desde Jenkins 2.379. Nunha JVM de controlador aplican a configuración de proxy compatible con Jenkins. Reutiliza o cliente en vez de crear un para cada solicitude.

Así evítase copiar o nome e o contrasinal do proxy almacenados no controlador a un transporte configurado por separado. Un cliente HTTP de Java creado á parte non pasa a coñecer o proxy só porque a interface do controlador teña unha entrada de proxy.

Nas solicitudes que envían unha cabeceira Authorization ao destino, revisa a limitación documentada do proxy autenticado en Java 17 e posteriores. A documentación sinala especificamente esa combinación; escoller esta axuda non elimina esa limitación do cliente.

Artigos relacionados