Reactor Netty-র proxy মেথড কনফিগার করা ক্লায়েন্ট ফেরত দেয়
proxy() যে HttpClient ফেরত দেয় সেটি ReactorClientHttpConnector-এ দেওয়ার আগে ধরে রাখুন; মূল ক্লায়েন্ট অপরিবর্তিত থাকে।
Reactor Netty-র HttpClient কনফিগারেশন মেথডগুলো কনফিগার করা ক্লায়েন্টের একটি রেফারেন্স ফেরত দেয়। ওই ফলাফল ফেলে দিলে আগের রেফারেন্স পুরোনো সেটিংস নিয়েই থাকে।
এই কোডটি একটি 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();
এখানে টাইপগুলো হল Reactor Netty-র HttpClient ও ProxyProvider, সঙ্গে Spring-এর WebClient ও ReactorClientHttpConnector। HttpClient.create() থেকে সরাসরি মেথড চেইন করাও ফেরত পাওয়া কনফিগারেশন ধরে রাখার আরেকটি উপায়। অনুমোদিত পাবলিক API অনুরোধের জন্য HTTP proxy তালিকা উদাহরণের হোস্ট ও পোর্টের জন্য প্রার্থী যোগায়।
রেসপন্স টাইমআউট বা redirect হ্যান্ডলিং সেট করার সময়ও একই পরীক্ষা প্রযোজ্য। setter মূল অবজেক্ট বদলায় ধরে নেওয়ার বদলে মেথডের রিটার্ন চুক্তি পড়ুন।
কোন রেফারেন্স connector-এ পৌঁছায় তাও অনুসরণ করুন। connector তৈরির পর লোকাল ভেরিয়েবল আবার অ্যাসাইন করলে connector আগেই যে ক্লায়েন্ট পেয়েছে তা বদলায় না।