Плъгин за Jenkins, който прави изходяща HTTP заявка, може да използва публичния помощник на 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 и по-нови. Документацията изрично посочва тази комбинация; изборът на този помощник не премахва ограничението на клиента.

Подобни статии