Un plugin Jenkins qui effectue une requête HTTP sortante peut utiliser l'assistant public de client compatible proxy de 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());

L'extrait utilise les types hudson.ProxyConfiguration, java.net.URI et java.net.http. L'appelant gère les entrées-sorties et l'interruption via le flux habituel du plugin. Le gestionnaire de corps consomme puis ignore le corps de la réponse.

newHttpClient et son interface de construction existent depuis Jenkins 2.379. Dans une JVM de contrôleur, ils appliquent la configuration proxy prise en charge par Jenkins. Réutilisez le client au lieu d'en créer un pour chaque requête.

Cela évite de recopier le nom et le mot de passe du proxy stockés dans le contrôleur vers un transport configuré séparément. Un client HTTP Java créé séparément ne devient pas compatible proxy simplement parce que l'interface du contrôleur contient une entrée proxy.

Pour les requêtes qui envoient un en-tête Authorization vers la destination, consultez la limitation documentée du proxy authentifié sous Java 17 et versions ultérieures. La documentation signale spécifiquement cette combinaison ; choisir cet assistant ne supprime pas cette limitation du client.

Articles similaires