Ένα plugin του Jenkins που κάνει εξερχόμενο αίτημα HTTP μπορεί να χρησιμοποιήσει το δημόσιο βοήθημα client με proxy του 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. Ο καλών χειρίζεται την είσοδο και την έξοδο καθώς και τη διακοπή μέσω της κανονικής ροής του plugin. Ο χειριστής σώματος καταναλώνει και απορρίπτει το σώμα της απόκρισης.

Το newHttpClient και η διεπαφή κατασκευαστή του υπάρχουν από το Jenkins 2.379. Σε JVM ελεγκτή εφαρμόζουν τη υποστηριζόμενη διαμόρφωση proxy του Jenkins. Επαναχρησιμοποιήστε τον client αντί να δημιουργείτε νέο για κάθε αίτημα.

Έτσι αποφεύγεται η αντιγραφή του αποθηκευμένου ονόματος και κωδικού proxy του ελεγκτή σε ξεχωριστά διαμορφωμένη μεταφορά. Ένας Java HTTP client που δημιουργείται χωριστά δεν γίνεται client με proxy μόνο επειδή η διεπαφή του ελεγκτή έχει καταχώριση proxy.

Για αιτήματα που στέλνουν κεφαλίδα Authorization στον προορισμό, ελέγξτε τον τεκμηριωμένο περιορισμό πιστοποιημένου proxy σε Java 17 και νεότερη. Η τεκμηρίωση επισημαίνει ειδικά αυτόν τον συνδυασμό· η επιλογή αυτού του βοηθήματος δεν αίρει τον περιορισμό του client.

Σχετικά άρθρα