JDK 25 HttpClient ProxySelector'ning SOCKS yo'llaridan foydalanmaydi
Faqat ProxySelector qaytaradigan turni ishonish o'rniga SOCKS'ni haqiqatan qo'llab-quvvatlaydigan Java HTTP transportini tanlang.
Java proksi obyekti yo'lni tavsiflaydi. Qaysi turdagi yo'llardan foydalanish mumkinligini tarmoq mijozi baribir o'zi hal qiladi. Bu mavjud so'nggi nuqta SOCKS tilida gaplashganda va dastur java.net.http.HttpClient dan foydalanganda muhim.
Bu yerda ko'rib chiqilgan JDK 25 amalga oshirilishida HTTP mijozi so'rov kodi tanlagichdan HTTP nomzodini qabul qiladi. SOCKS nomzodi uni SOCKS muzokaralarini o'tkazishga majbur qilmaydi; amalga oshirish proksisiz davom etishi mumkin. Shuning uchun muvaffaqiyatli javob maxsus tanlagichning SOCKS yozuvi ishlatilganiga yetarli dalil emas.
Avval transportni tanlang
URLConnection'ga asoslangan mavjud dastur uchun ulanish ochilganda protokol ishlovchisiga qo'llab-quvvatlanadigan aniq proksi berish mumkin:
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);
Ruxsat etilgan ommaviy maqsad sinovlari uchun xizmatingizdan yoki SOCKS proksilari ro'yxatidan mos SOCKS so'nggi nuqtasini foydalaning. Bu boshqa mijoz API, HttpClient.Builder.proxy ning muqobil yozilishi emas. HTTPS mo'ljallangan saytni tanib turishi uchun manzil URL ni saqlang.
java.net.http ni saqlab qolishi shart bo'lgan dastur buning o'rniga mos keladigan HTTP proksi so'nggi nuqtasidan foydalanishi mumkin, keyingi SOCKS ulanishini boshqaradigan tasdiqlangan adapterni ham qo'shgan holda. Bu haqiqiy komponent va yana bir kirish chegarasini qo'shadi; 8080 portini 1080 ga o'zgartirish bu tarjimani bermaydi.
Tanlov va qabul qilishni ko'rinadigan qilib turing
Tanlagich natijasini va mijoz haqiqatan ochadigan ulanishni ikkalasini ham qayd eting. Birinchisi siyosat chiqishini tavsiflaydi; ikkinchisi amalga oshirish uni qabul qilganmi-yo'qmi aniqlaydi.
Xulosalarni ishlatilayotgan ish muhiti va transportga bog'lang. Bitta soket amalga oshirilishi ishlatadigan JVM SOCKS xossalari har bir HTTP kutubxonasi ularga murojaat qiladi degan va'da emas. Yo'l majburiy bo'lsa, qo'llab-quvvatlanmaydigan proksi turi tashqaridan muvaffaqiyatli ko'ringan to'g'ridan-to'g'ri so'rovni qabul qilishdan oldin aniqlanishi kerak.