Οι μέθοδοι ρύθμισης του HttpClient στο Reactor Netty επιστρέφουν αναφορά σε έναν ρυθμισμένο client. Αν πετάξετε αυτό το αποτέλεσμα, η προηγούμενη αναφορά κρατά τις παλιές της ρυθμίσεις.

Ο παρακάτω κώδικας δημιουργεί μια ρύθμιση proxy και μετά τη χάνει:

HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
    .host("proxy.example").port(8080));

Αντίθετα, κρατήστε την αναφορά που επιστρέφεται:

client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
    .host("proxy.example").port(8080));

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

Οι τύποι είναι HttpClient και ProxyProvider του Reactor Netty, καθώς και WebClient και ReactorClientHttpConnector του Spring. Η αλυσιδωτή κλήση μεθόδων απευθείας από το HttpClient.create() είναι ένας ακόμη τρόπος να διατηρήσετε τη ρύθμιση που επιστρέφεται. Για επιτρεπόμενα αιτήματα δημόσιου API, η λίστα proxy HTTP παρέχει υποψήφια για τον host και τη θύρα του παραδείγματος.

Ο ίδιος έλεγχος ισχύει όταν ορίζετε χρονικά όρια απόκρισης ή χειρίζεστε ανακατευθύνσεις. Διαβάστε το συμβόλαιο επιστροφής της μεθόδου αντί να υποθέτετε ότι ένα setter μεταβάλλει το αρχικό αντικείμενο.

Παρακολουθήστε επίσης ποια αναφορά φτάνει στον connector. Η εκ νέου ανάθεση μιας τοπικής μεταβλητής μετά τη δημιουργία connector δεν αντικαθιστά τον client που έχει ήδη λάβει ο connector.

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