HttpURLConnection เปิดเผย usingProxy แต่ผลลัพธ์ต้องอาศัยการทำงานและสถานะของการเชื่อมต่อควบคู่กัน ไม่ใช่คำขอทดสอบ

ในตัวจัดการ HTTP ของ OpenJDK 25 พร็อกซี HTTP ที่กำหนดไว้อย่างชัดเจนสามารถทำให้เมธอดคืนค่า true ก่อนเปิดการเชื่อมต่อเครือข่าย:

import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;

var proxy = new Proxy(Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example", 8080));
var url = URI.create("http://example.com/").toURL();
var connection = (HttpURLConnection) url.openConnection(proxy);
boolean proxyFlag = connection.usingProxy();

ผู้สมัคร HTTP จากรายการพร็อกซี HTTP สามารถเติมโฮสต์และพอร์ตสำหรับคำขอสาธารณะที่ได้รับอนุญาตโดยไม่ต้องยืนยันตัวตนพร็อกซี openConnection สร้างออบเจ็กต์ขึ้น แต่ไม่ได้สร้างการเชื่อมต่อ HTTP เพียงเพราะคืนออบเจ็กต์นั้น ดังนั้นแฟล็กในกรณีพร็อกซีแบบชัดเจนนี้จึงไม่ได้พิสูจน์ว่าตัวกลางเข้าถึงได้หรือยอมรับคำขอ

เมื่อเลือกอัตโนมัติ การเลือกเส้นทางอาจเกิดขึ้นภายหลังขณะที่ตัวจัดการเชื่อมต่อ ผลลัพธ์ false ในช่วงแรกไม่ควรถือเป็นการตัดสินใจเส้นทางสุดท้าย หลังเชื่อมต่อแล้ว ให้ตีความสถานะร่วมกับข้อยกเว้นหรือการตอบกลับใด ๆ โดยเฉพาะเมื่อมีการยืนยันตัวตนหรือเส้นทางสำรอง

เมธอดสาธารณะเป็นของ HttpURLConnection ส่วนพฤติกรรมข้างต้นจำเพาะกับตัวจัดการ OpenJDK ที่ระบุ ผู้ให้บริการหรือการใช้งาน JDK อื่นไม่จำเป็นต้องแสดงรายละเอียดก่อนเชื่อมต่อเหมือนกัน

บันทึกว่าพร็อกซีถูกเลือกอย่างไรและอ่านแฟล็กเมื่อใด เพื่อยืนยันที่อยู่ต้นทางที่ปลายทางมองเห็น เก็บหลักฐานจากฝั่งปลายทาง เครื่องหมายพร็อกซีแบบบูลีนไม่มีฟิลด์สำหรับที่อยู่ทางออกนั้น

บทความที่เกี่ยวข้อง