JDK 25 HttpClient ले SOCKS ProxySelector मार्गहरू प्रयोग गर्दैन
ProxySelector ले फर्काउने प्रकारमा मात्र भर नपर्ने, SOCKS लाई साँच्चै समर्थन गर्ने Java HTTP यातायात छान्नुहोस्।
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 को वैकल्पिक हिज्जे होइन। HTTPS ले इच्छित वेबसाइट पहिचान गरिरहन गन्तव्य URL राख्नुहोस्।
java.net.http राख्नैपर्ने अनुप्रयोगले यसको सट्टा मिल्दो HTTP प्रोक्सी अन्तबिन्दु प्रयोग गर्न सक्छ, जसमा अगाडिको SOCKS जडान सम्हाल्ने स्वीकृत एडाप्टर पनि समावेश हुन्छ। त्यसले वास्तविक घटक र अर्को पहुँच सीमा थप्छ; पोर्ट 8080 लाई 1080 बनाउँदा त्यो अनुवाद प्राप्त हुँदैन।
छनोट र स्वीकृति देखिने राख्नुहोस्
चयनकर्ताको नतिजा र क्लाइन्टले वास्तवमै खोल्ने जडान दुवै अभिलेख गर्नुहोस्। पहिलोले नीति आउटपुट वर्णन गर्छ; दोस्रोले कार्यान्वयनले त्यसलाई स्वीकार गरेको हो वा होइन निर्धारण गर्छ।
निष्कर्षहरूलाई प्रयोग भइरहेको रनटाइम र यातायातसँग बाँध्नुहोस्। एउटा सकेट कार्यान्वयनले प्रयोग गर्ने JVM SOCKS गुणहरू प्रत्येक HTTP पुस्तकालयले तिनलाई सोध्छ भन्ने वाचा होइन। मार्ग अनिवार्य हुँदा, देखिने रूपमा सफल प्रत्यक्ष अनुरोध स्वीकार गर्नुअघि असमर्थित प्रोक्सी प्रकार पत्ता लगाउनुपर्छ।