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 کی متبادل ہجے نہیں۔ منزل URL برقرار رکھیں تاکہ HTTPS مطلوبہ ویب سائٹ کی شناخت جاری رکھے۔

جس ایپلیکیشن کو java.net.http رکھنا لازم ہو، وہ اس کے بجائے موافق HTTP پراکسی اینڈ پوائنٹ استعمال کر سکتی ہے، بشمول منظور شدہ اڈاپٹر جو اگلا SOCKS کنکشن سنبھالتا ہے۔ یہ ایک حقیقی جزو اور ایک اور رسائی حد شامل کرتا ہے؛ پورٹ 8080 کو 1080 کرنا وہ ترجمہ فراہم نہیں کرتا۔

انتخاب اور قبولیت کو نظر آنے والا رکھیں

منتخب کنندہ کا نتیجہ اور وہ کنکشن جو کلائنٹ درحقیقت کھولتا ہے، دونوں ریکارڈ کریں۔ پہلا پالیسی آؤٹ پٹ بیان کرتا ہے؛ دوسرا طے کرتا ہے کہ عمل درآمد نے اسے اپنایا یا نہیں۔

نتائج کو زیر استعمال رن ٹائم اور ترسیل سے باندھیں۔ ایک ساکٹ عمل درآمد کے استعمال کردہ JVM SOCKS خصوصیات اس بات کا وعدہ نہیں کہ ہر HTTP لائبریری ان سے رجوع کرتی ہے۔ جب راستہ لازمی ہو، تو ظاہری طور پر کامیاب براہ راست درخواست قبول کرنے سے پہلے غیر معاون پراکسی قسم کا پتہ لگانا چاہیے۔

متعلقہ مضامین