Wtyczka Jenkinsa wykonująca wychodzące żądanie HTTP może użyć publicznego pomocnika klienta obsługującego proxy:

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());

Fragment używa typów hudson.ProxyConfiguration, java.net.URI i java.net.http. Wywołujący obsługuje wejście i wyjście oraz przerwanie przez zwykły przepływ wtyczki. Procedura obsługi treści zużywa i odrzuca treść odpowiedzi.

newHttpClient i jego interfejs konstruktora są dostępne od Jenkinsa 2.379. W JVM kontrolera stosują obsługiwaną przez Jenkinsa konfigurację proxy. Używaj klienta ponownie, zamiast tworzyć nowy dla każdego żądania.

Pozwala to uniknąć kopiowania zapisanej w kontrolerze nazwy i hasła proxy do osobno skonfigurowanego transportu. Osobno utworzony klient HTTP Javy nie staje się świadomy proxy tylko dlatego, że interfejs kontrolera zawiera wpis proxy.

W przypadku żądań wysyłających nagłówek Authorization do celu sprawdź udokumentowane ograniczenie uwierzytelnionego proxy w Javie 17 i nowszych. Dokumentacja wyraźnie wskazuje tę kombinację; wybór tego pomocnika nie usuwa tego ograniczenia klienta.

Powiązane artykuły