Java URLConnection: ตั้ง proxy โดยไม่เปลี่ยน URL
อย่าใช้ proxy เป็นเว็บเซิร์ฟเวอร์ แต่ส่งเส้นทางเป็นตัวเลือกการเชื่อมต่อ Java แยกต่างหาก
เก็บ URL ของทรัพยากรจริงไว้ แล้วส่ง proxy แยกให้ URLConnection:
URI destination = URI.create("https://example.com/report");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080));
URLConnection connection = destination.toURL().openConnection(proxy);
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);
ใช้ import จาก java.net และแทนที่ที่อยู่ proxy ในเอกสารด้วยบริการ HTTP ของคุณหรือผู้สมัครจากรายการ proxy HTTP การเชื่อมต่อยังคงร้องขอ https://example.com/report; proxy คือเส้นทางของมัน การตั้งค่านี้ไม่ได้กำหนดทั้งข้อมูลรับรองหรือทุกไลบรารี HTTP ใน JVM
โค้ดที่ผิดซึ่งแทน proxy ลงใน URL ของทรัพยากรอาจได้หน้า proxy ที่รวดเร็วหรือข้อผิดพลาดแทนรายงาน เปรียบเทียบสถานะ เนื้อหา และปลายทางจริงก่อนตีความการตอบกลับที่รวดเร็วนั้นว่ามีประสิทธิภาพดีกว่า
openConnection(Proxy) เก็บเส้นทางทรัพยากรไว้บน URI ปลายทาง ให้เก็บชื่อโฮสต์นั้นไว้สำหรับการตรวจสอบใบรับรอง HTTPS ด้วย การเปลี่ยนเป็นตัวกลางอาจเพิ่มความไม่ตรงกันของชื่อในข้อผิดพลาดการกำหนดเส้นทาง
หากแอปพลิเคชันสร้างไคลเอนต์ HTTP อื่น ให้ใช้ไคลเอนต์นั้นหรืออินเทอร์เฟซ connection-factory ของมัน อ็อบเจ็กต์ proxy ของ URLConnection ไม่สามารถกำหนดเส้นทางที่ไม่เคยเรียก API นี้ได้