JDK 25 HttpClient SOCKS ProxySelector পথ ব্যবহার করে না
শুধু ProxySelector যে ধরন ফেরত দেয় তার উপর নির্ভর না করে এমন একটি Java HTTP ট্রান্সপোর্ট বেছে নিন যা সত্যিই SOCKS সমর্থন করে।
একটি Java প্রক্সি অবজেক্ট একটি পথ বর্ণনা করে। নেটওয়ার্কিং ক্লায়েন্টই এখনও ঠিক করে সে কোন ধরনের পথ ব্যবহার করতে পারে। এটি গুরুত্বপূর্ণ যখন উপলব্ধ এন্ডপয়েন্ট SOCKS বলে এবং অ্যাপ্লিকেশনটি java.net.http.HttpClient ব্যবহার করে।
এখানে পরীক্ষিত JDK 25 বাস্তবায়নে, HTTP ক্লায়েন্টের অনুরোধ কোড সিলেক্টর থেকে একটি HTTP প্রার্থী গ্রহণ করে। SOCKS প্রার্থী এটিকে SOCKS আলোচনা করতে বাধ্য করে না; বাস্তবায়ন প্রক্সি ছাড়াই চালিয়ে যেতে পারে। তাই একটি সফল সাড়াই যথেষ্ট প্রমাণ নয় যে একটি কাস্টম সিলেক্টরের SOCKS এন্ট্রি ব্যবহৃত হয়েছে।
প্রথমে ট্রান্সপোর্ট বেছে নিন
URLConnection-ভিত্তিক একটি বিদ্যমান অ্যাপ্লিকেশনের জন্য, সংযোগ খোলার সময় প্রোটোকল হ্যান্ডলারকে একটি সমর্থিত স্পষ্ট প্রক্সি দেওয়া যায়:
Proxy route = new Proxy(Proxy.Type.SOCKS,
new InetSocketAddress("proxy.example", 1080));
URLConnection connection = URI.create("https://service.example/")
.toURL().openConnection(route);
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);
অনুমোদিত পাবলিক-লক্ষ্য পরীক্ষার জন্য, আপনার সেবা বা SOCKS প্রক্সি তালিকা থেকে একটি মিলে যাওয়া SOCKS এন্ডপয়েন্ট ব্যবহার করুন। এটি একটি ভিন্ন ক্লায়েন্ট API, HttpClient.Builder.proxy-এর বিকল্প বানান নয়। গন্তব্য URL রাখুন যাতে HTTPS উদ্দিষ্ট ওয়েবসাইট চিনতে থাকে।
যে অ্যাপ্লিকেশনকে java.net.http রাখতেই হবে, সে এর বদলে একটি সামঞ্জস্যপূর্ণ HTTP প্রক্সি এন্ডপয়েন্ট ব্যবহার করতে পারে, যার মধ্যে পরবর্তী SOCKS সংযোগ সামলানো একটি অনুমোদিত অ্যাডাপ্টারও রয়েছে। এটি একটি প্রকৃত উপাদান ও আরেকটি প্রবেশসীমা যোগ করে; পোর্ট 8080-কে 1080-এ বদলালে এই অনুবাদ মেলে না।
নির্বাচন ও গ্রহণ দৃশ্যমান রাখুন
সিলেক্টরের ফলাফল এবং ক্লায়েন্ট যে সংযোগটি সত্যিই খোলে, দুটোই লিখে রাখুন। প্রথমটি নীতির আউটপুট বর্ণনা করে; দ্বিতীয়টি নির্ধারণ করে বাস্তবায়ন তা গ্রহণ করেছে কি না।
সিদ্ধান্তগুলিকে ব্যবহৃত রানটাইম ও ট্রান্সপোর্টের সঙ্গে বেঁধে দিন। একটি সকেট বাস্তবায়ন যে JVM SOCKS বৈশিষ্ট্য ব্যবহার করে, তা এই প্রতিশ্রুতি নয় যে প্রতিটি HTTP লাইব্রেরি সেগুলি দেখে। পথ বাধ্যতামূলক হলে, আপাতসফল সরাসরি অনুরোধ গ্রহণের আগে অসমর্থিত প্রক্সি ধরন শনাক্ত করা উচিত।