Використання проксі-орієнтованого 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 конфігурацію проксі. Використовуйте клієнт повторно, а не створюйте новий для кожного запиту.
Це позбавляє від копіювання збережених у контролері імені та пароля проксі в окремо налаштований транспорт. Окремо створений HTTP-клієнт Java не стає проксі-орієнтованим лише тому, що в інтерфейсі контролера є запис проксі.
Для запитів, які передають заголовок Authorization одержувачу, перегляньте документоване обмеження для автентифікованого проксі в Java 17 і новіших версіях. Документація особливо вказує на це поєднання; вибір цього помічника не знімає зазначене обмеження клієнта.