Reactor Netty ဖြင့် Spring WebClient proxy ကို ပြင်ဆင်ခြင်း
WebClient ၏ connector မှတဆင့် proxy ပြင်ဆင်ထားသော Reactor Netty client ကို ပံ့ပိုးပြီး ၎င်း၏ CONNECT အခြေခံ proxy အပြုအမူကို ထည့်သွင်းစဉ်းစားပါ။
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 လမ်းကြောင်းရှိ အများသုံးဝန်ဆောင်မှုများအတွက် HTTP proxy စာရင်း သည် host နှင့် port ရွေးချယ်စရာများကို ပေးသည်။ အမှန်တကယ် ဦးတည်ရာသို့ CONNECT ဝင်ရောက်မှုကို အတည်ပြုပါ။ HttpClient/ProxyProvider အမျိုးအစားများသည် Reactor Netty ၏ဟာဖြစ်ပြီး Java ၏ စံ client မဟုတ်ပါ။ ထည့်သွင်းထားသော အခြား WebClient သည် အခြား connector ကို ထိန်းထားနိုင်သည်။
Reactor Netty ၏ မှတ်တမ်းတင်ထားသော Netty HTTP proxy လမ်းကြောင်းသည် ဦးတည်ရာ scheme မည်သို့ဖြစ်ပါစေ CONNECT ကို အသုံးပြုသည်။ ထို့ကြောင့် ရိုးရှင်းသော HTTP ပစ်မှတ်တစ်ခုသည် proxy က ထိုနေရာတွင် သာမန် ပို့ဆောင်ထားသော HTTP ကို လက်ခံသော်လည်း ၎င်း၏ port သို့ tunnel ခွင့်ပြုချက် လိုအပ်နိုင်သည်။ URL ၏ scheme ကို မပြောင်းမီ proxy ၏ အမှန်တကယ် တုံ့ပြန်မှုကို ဖတ်ပါ။ သာမန် HTTP/1.1 ပို့ဆောင်မှု လိုအပ်သော သဟဇာတဖြစ်သည့် Spring 6.2 တပ်ဆင်မှုအတွက် Jetty 12.0.35 connector နမူနာ သည် ထိုရွေးချယ်စရာကို ပေးသည်။
JVM ဂုဏ်သတ္တိ လမ်းကြောင်းချမှုအတွက် Reactor Netty ၏ မှတ်တမ်းတင်ထားသော opt-in ပြင်ဆင်မှုကို ရွေးပါ။ JVM တွင် ရှိသော ဂုဏ်သတ္တိတစ်ခုသည် connector တိုင်းကို မပြင်ဆင်ပါ။
proxy ပြင်ဆင်မှု/အထောက်အထားစိစစ်မှု၊ ဦးတည်ရာ TLS နှင့် application တုံ့ပြန်မှုများကို သီးခြားထားပါ။ connector သည် လမ်းကြောင်းကို ပေးသည်၊ ဦးတည်ရာ၏ အထောက်အထားများ သို့မဟုတ် protocol ရလဒ်ကို မဟုတ်ပါ။