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 लायब्ररी त्यांचा सल्ला घेते असे वचन नाही. मार्ग अनिवार्य असल्यास, दिसण्यात यशस्वी थेट विनंती स्वीकारण्यापूर्वी असमर्थित प्रॉक्सी प्रकार ओळखला पाहिजे.

संबंधित लेख