HttpClient httpClient = HttpClient.create()
    .proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
        .host("203.0.113.10").port(8080));

WebClient client = WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(httpClient))
    .build();

Χρησιμοποιήστε αυτόν τον WebClient για την κλήση. Για δημόσιες υπηρεσίες σε εγκεκριμένη διαδρομή δημόσιου proxy, η λίστα proxy HTTP παρέχει υποψήφια host και port· επιβεβαιώστε την πρόσβαση CONNECT στον πραγματικό προορισμό. Οι τύποι HttpClient/ProxyProvider είναι του Reactor Netty, όχι του τυπικού πελάτη της Java. Ένας άλλος εγχυμένος WebClient μπορεί να διατηρεί άλλον connector.

Η τεκμηριωμένη διαδρομή proxy HTTP του Netty στο Reactor Netty χρησιμοποιεί CONNECT ανεξάρτητα από το σχήμα του προορισμού. Ένας απλός στόχος HTTP μπορεί επομένως να χρειάζεται άδεια σήραγγας προς τη θύρα του, ακόμη και όταν το proxy δέχεται εκεί συνηθισμένο προωθημένο HTTP. Διαβάστε την πραγματική απόκριση του proxy πριν αλλάξετε το σχήμα του URL. Για συμβατή εγκατάσταση Spring 6.2 που χρειάζεται συνηθισμένη προώθηση HTTP/1.1, το παράδειγμα connector Jetty 12.0.35 παρέχει αυτή την εναλλακτική.

Για δρομολόγηση μέσω ιδιοτήτων JVM, επιλέξτε την τεκμηριωμένη ρύθμιση opt-in του Reactor Netty. Μια ιδιότητα που υπάρχει στο JVM δεν ρυθμίζει κάθε connector.

Κρατήστε χωριστά τη ρύθμιση/πιστοποίηση του proxy, το TLS του προορισμού και τις αποκρίσεις της εφαρμογής. Ο connector παρέχει τη διαδρομή, όχι τα διαπιστευτήρια του προορισμού ή το αποτέλεσμα του πρωτοκόλλου.

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