Un plugin di Jenkins che effettua una richiesta HTTP in uscita può usare l'helper pubblico del client con proxy di 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());

Il frammento usa i tipi hudson.ProxyConfiguration, java.net.URI e java.net.http. Il chiamante gestisce input e output e l'interruzione tramite il normale flusso del plugin. Il gestore del corpo consuma e scarta il corpo della risposta.

newHttpClient e la sua interfaccia builder sono disponibili da Jenkins 2.379. In una JVM del controller applicano la configurazione proxy supportata da Jenkins. Riusa il client invece di crearne uno per ogni richiesta.

Così si evita di copiare nome e password del proxy memorizzati nel controller in un trasporto configurato separatamente. Un client HTTP Java creato separatamente non diventa consapevole del proxy solo perché l'interfaccia del controller contiene una voce proxy.

Per le richieste che inviano un'intestazione Authorization alla destinazione, esamina la limitazione documentata del proxy autenticato su Java 17 e versioni successive. La documentazione segnala specificamente questa combinazione; scegliere questo helper non rimuove tale limitazione del client.

Articoli correlati