Metode konfigurasi HttpClient di Reactor Netty mengembalikan referensi ke klien yang telah dikonfigurasi. Jika hasilnya dibuang, referensi sebelumnya tetap memakai pengaturan lamanya.

Kode ini membuat konfigurasi proxy lalu kehilangannya:

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

Simpan referensi yang dikembalikan sebagai gantinya:

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

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

Tipe yang terlibat adalah HttpClient dan ProxyProvider dari Reactor Netty, serta WebClient dan ReactorClientHttpConnector dari Spring. Merangkai metode langsung dari HttpClient.create() juga cara lain mempertahankan konfigurasi yang dikembalikan. Untuk permintaan API publik yang diizinkan, daftar proxy HTTP menyediakan kandidat untuk host dan port pada contoh.

Pemeriksaan yang sama berlaku saat menyetel batas waktu respons atau penanganan pengalihan. Bacalah kontrak pengembalian metode, bukan menganggap setter mengubah objek asli.

Lacak juga referensi mana yang sampai ke connector. Menetapkan ulang variabel lokal setelah connector dibuat tidak menggantikan klien yang sudah diterima connector tersebut.

Artikel terkait