Un plugin de Jenkins que realiza una solicitud HTTP saliente puede usar el ayudante público 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());

El fragmento usa los tipos hudson.ProxyConfiguration, java.net.URI y java.net.http. El llamador gestiona la entrada y la salida, así como la interrupción, mediante el flujo normal del plugin. El gestor del cuerpo consume y descarta el cuerpo de la respuesta.

newHttpClient y su interfaz de constructor están disponibles desde Jenkins 2.379. En una JVM de controlador aplican la configuración de proxy compatible con Jenkins. Reutiliza el cliente en lugar de crear uno para cada solicitud.

Así se evita copiar el nombre y la contraseña del proxy almacenados en el controlador a un transporte configurado por separado. Un cliente HTTP de Java creado aparte no pasa a conocer el proxy solo porque la interfaz del controlador tenga una entrada de proxy.

En las solicitudes que envían una cabecera Authorization al destino, revisa la limitación documentada del proxy autenticado en Java 17 y posteriores. La documentación señala específicamente esa combinación; elegir este ayudante no elimina esa limitación del cliente.

Artículos relacionados