Ein Jenkins-plugin som sender ein utgåande HTTP-førespurnad kan bruke den offentlege proxybevisste klienthjelparen til 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());

Utdraget brukar typane hudson.ProxyConfiguration, java.net.URI og java.net.http. Kallaren handterer inn- og utdata og avbrot gjennom den vanlege pluginflyten. Kroppshandsamararen les og kastar svarkroppen.

newHttpClient og byggjargrensesnittet har vore tilgjengelege sidan Jenkins 2.379. I ein kontrollar-JVM brukar dei proxykonfigurasjonen som Jenkins støttar. Bruk klienten om att i staden for å lage ein ny for kvar førespurnad.

Det unngår å kopiere proxynamnet og passordet som er lagra i kontrollaren over til ein transport som er konfigurert separat. Ein Java HTTP-klient som blir laga separat, blir ikkje proxybevisst berre fordi kontrollargrensesnittet har ein proxyoppføring.

For førespurnader som sender ein Authorization-header til målet, gå gjennom den dokumenterte avgrensinga for autentisert proxy på Java 17 og nyare. Dokumentasjonen peikar særskilt på denne kombinasjonen; valet av denne hjelparen fjernar ikkje den klientavgrensinga.

Relaterte artiklar