Плагин 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 и новее. Документация особо указывает на это сочетание; выбор этого помощника не снимает указанное ограничение клиента.

Похожие статьи