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