JDK 25 HttpClient មិនប្រើផ្លូវ SOCKS របស់ ProxySelector ទេ
ជ្រើសរើសការដឹកជញ្ជូន HTTP របស់ Java ដែលគាំទ្រ SOCKS ពិតប្រាកដ ជំនួសឱ្យការពឹងផ្អែកតែលើប្រភេទដែល ProxySelector ត្រឡប់មកវិញ។
វត្ថុ proxy របស់ Java ពិពណ៌នាអំពីផ្លូវមួយ។ កម្មវិធីភ្ញៀវបណ្តាញនៅតែសម្រេចថាតើផ្លូវប្រភេទណាដែលវាអាចប្រើបាន។ នេះសំខាន់នៅពេលចំណុចបញ្ចប់ដែលមាននិយាយ SOCKS ហើយកម្មវិធីប្រើ java.net.http.HttpClient។
នៅក្នុងការអនុវត្ត JDK 25 ដែលបានពិនិត្យនៅទីនេះ កូដសំណើរបស់កម្មវិធីភ្ញៀវ HTTP ទទួលយកបេក្ខជន HTTP ពីឧបករណ៍ជ្រើសរើស។ បេក្ខជន SOCKS មិនធ្វើឱ្យវាអនុវត្តការចរចា SOCKS ទេ; ការអនុវត្តអាចបន្តដោយគ្មាន proxy។ ដូច្នេះការឆ្លើយតបដែលជោគជ័យមិនមែនជាភស្តុតាងគ្រប់គ្រាន់ថាធាតុ SOCKS របស់ឧបករណ៍ជ្រើសរើសផ្ទាល់ខ្លួនត្រូវបានប្រើទេ។
ជ្រើសរើសការដឹកជញ្ជូនមុន
សម្រាប់កម្មវិធីដែលមានស្រាប់ដែលផ្អែកលើ URLConnection កម្មវិធីគ្រប់គ្រងពិធីការអាចទទួលបាន proxy ច្បាស់លាស់ដែលគាំទ្រ នៅពេលបើកការតភ្ជាប់៖
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 ដែលត្រូវគ្នាពីសេវាកម្មរបស់អ្នក ឬពីបញ្ជី proxy SOCKS។ នេះជា API ភ្ញៀវផ្សេង មិនមែនជាអក្ខរាវិរុទ្ធជំនួសរបស់ HttpClient.Builder.proxy ទេ។ រក្សា URL គោលដៅ ដើម្បីឱ្យ HTTPS បន្តកំណត់អត្តសញ្ញាណគេហទំព័រដែលបានបម្រុង។
កម្មវិធីដែលត្រូវរក្សា java.net.http អាចប្រើចំណុចបញ្ចប់ proxy HTTP ដែលត្រូវគ្នាជំនួសវិញ រួមទាំងអាដាប់ធ័រដែលបានអនុម័តដែលគ្រប់គ្រងការតភ្ជាប់ SOCKS បន្ត។ នោះបន្ថែមសមាសធាតុពិត និងព្រំដែនចូលប្រើមួយទៀត; ការផ្លាស់ប្តូរច្រក 8080 ទៅ 1080 មិនផ្តល់ការបកប្រែនោះទេ។
រក្សាការជ្រើសរើស និងការអនុម័តឱ្យមើលឃើញ
កត់ត្រាទាំងលទ្ធផលរបស់ឧបករណ៍ជ្រើសរើស និងការតភ្ជាប់ដែលកម្មវិធីភ្ញៀវបើកពិតប្រាកដ។ ទីមួយពិពណ៌នាលទ្ធផលគោលនយោបាយ; ទីពីរកំណត់ថាតើការអនុវត្តបានអនុម័តវាឬអត់។
ភ្ជាប់ការសន្និដ្ឋានទៅនឹងពេលវេលាដំណើរការ និងការដឹកជញ្ជូនដែលបានប្រើ។ លក្ខណៈ SOCKS របស់ JVM ដែលប្រើដោយការអនុវត្ត socket មួយ មិនមែនជាការសន្យាថារាល់បណ្ណាល័យ HTTP ពិគ្រោះជាមួយពួកវាទេ។ នៅពេលផ្លូវជាកាតព្វកិច្ច ប្រភេទ proxy ដែលមិនគាំទ្រគួរត្រូវបានរកឃើញ មុនពេលទទួលយកសំណើផ្ទាល់ដែលមើលទៅជោគជ័យ។