JDK 25 HttpClient ProxySelector نىڭ SOCKS يوللىرىنى ئىشلەتمەيدۇ
پەقەت 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 كۇتۇپخانىسىنىڭ ئۇلارغا مۇراجىئەت قىلىشىغا ۋەدە ئەمەس. يول مەجبۇرىي بولغاندا، قوللانمايدىغان ۋاكالەتچى تۈرىنى سىرتىدىن مۇۋەپپەقىيەتلىك كۆرۈنگەن بىۋاسىتە تەلەپنى قوبۇل قىلىشتىن ئىلگىرى بايقاش كېرەك.