Plugin pro Jenkins, který odesílá odchozí HTTP požadavek, může použít veřejného pomocníka Jenkinsu pro klienta s podporou proxy:

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());

Úryvek používá typy hudson.ProxyConfiguration, java.net.URI a java.net.http. Volající zpracovává vstup a výstup i přerušení běžným tokem pluginu. Obsluha těla tělo odpovědi spotřebuje a zahodí.

newHttpClient a jeho rozhraní pro sestavení jsou k dispozici od Jenkinsu 2.379. V JVM kontroleru uplatňují podporovanou konfiguraci proxy v Jenkinsu. Klienta znovu použijte, místo abyste ho vytvářeli pro každý požadavek.

Tím se vyhnete kopírování uloženého jména a hesla proxy z kontroleru do samostatně nakonfigurovaného přenosu. Samostatně vytvořený HTTP klient v Javě se nestane klientem s podporou proxy jen proto, že rozhraní kontroleru obsahuje položku proxy.

U požadavků, které odesílají hlavičku Authorization cíli, projděte dokumentované omezení ověřené proxy v Javě 17 a novější. Dokumentace na tuto kombinaci výslovně upozorňuje; volba tohoto pomocníka uvedené omezení klienta neodstraňuje.

Související články