Плагін 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 і новіших версіях. Документація особливо вказує на це поєднання; вибір цього помічника не знімає зазначене обмеження клієнта.

Схожі статті