JDK 25 HttpClient የSOCKS ProxySelector መንገዶችን አይጠቀምም
በProxySelector ከተመለሰው ዓይነት ብቻ መተማመንን በመተው SOCKSን በትክክል የሚደግፍ የጃቫ HTTP ማጓጓዣ ይምረጡ።
የጃቫ ፕሮክሲ ኦብጀክት መንገድን ይገልጻል። የኔትወርክ ደንበኛው ምን ዓይነት መንገዶችን መጠቀም እንደሚችል አሁንም ይወስናል። ይህ የሚገዝበት ጊዜ ያለው መጨረሻ ነጥብ 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 መጨረሻ ነጥብ ይጠቀሙ። ይህ የተለየ የደንበኛ ኤፒአይ ነው፣ የHttpClient.Builder.proxy አማራጭ አጻጻፍ አይደለም። HTTPS የታሰበውን ድህረ ገጽ መለየቱን እንዲቀጥል የመዳረሻውን URL ያቆዩ።
java.net.http ማቆየት ያለበት መተግበሪያ በምትኩ ተኳኋኝ የHTTP ፕሮክሲ መጨረሻ ነጥብ መጠቀም ይችላል፣ ወደፊት ያለውን የSOCKS ግንኙነት የሚያስተናግድ የተፈቀደ አስማሚን ጨምሮ። ይህ እውነተኛ አካል እና ሌላ የመዳረሻ ወሰን ይጨምራል፤ ወደብ 8080ን ወደ 1080 መቀየር ትርጉሙን አይሰጥም።
ምርጫንና ተቀባይነትን ይታይ አድርጉ
የመራጩን ውጤት እና ደንበኛው በትክክል የሚከፍተውን ግንኙነት ሁለቱንም ይመዝግቡ። የመጀመሪያው የፖሊሲ ውጤትን ይገልጻል፤ ሁለተኛው አተገባበሩ ተቀብሎት እንደሆነ ያረጋግጣል።
መደምደሚያዎችን በሚጠቀመው የሩጫ ጊዜ እና ማጓጓዣ ላይ ያሰሩ። በአንድ የሶኬት አተገባበር የሚጠቀሙባቸው የJVM SOCKS ባህሪያት ሁሉም የHTTP ቤተ-መጽሐፍት ያማክሯቸዋል ማለት አይደሉም። መንገዱ ግዴታ ሲሆን፣ በግልጽ ስኬታማ ቀጥተኛ ጥያቄ ከመቀበል በፊት የማይደገፍ የፕሮክሲ ዓይነት መለየት አለበት።