HttpURLConnection.usingProxy() trước và sau khi kết nối
Hiểu usingProxy là trạng thái của trình xử lý, bao gồm hành vi proxy tường minh của OpenJDK 25 trước khi thiết lập kết nối.
HttpURLConnection công bố usingProxy, nhưng kết quả cần đi kèm việc triển khai và trạng thái của kết nối. Đây không phải yêu cầu thử nghiệm.
Trong trình xử lý HTTP của OpenJDK 25, một proxy HTTP được cấu hình tường minh có thể khiến phương thức trả về true trước khi kết nối mạng được mở:
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();Một ứng viên HTTP từ danh sách proxy HTTP có thể điền máy chủ và cổng cho một yêu cầu công khai được phép mà không cần xác thực proxy. openConnection tạo đối tượng. Nó không thiết lập kết nối HTTP chỉ bằng việc trả về đối tượng đó. Vì vậy cờ trong trường hợp proxy tường minh này không chứng minh rằng trung gian có thể truy cập hoặc chấp nhận yêu cầu.
Với lựa chọn tự động, việc chọn tuyến có thể diễn ra muộn hơn khi trình xử lý kết nối. Kết quả false sớm không nên được coi là quyết định tuyến cuối cùng. Sau khi kết nối, hãy diễn giải trạng thái cùng với bất kỳ ngoại lệ hoặc phản hồi nào, đặc biệt khi có xác thực hoặc tuyến dự phòng.
Phương thức công khai thuộc về HttpURLConnection, còn hành vi trên là đặc thù của trình xử lý OpenJDK được nêu. Nhà cung cấp hoặc bản triển khai JDK khác không nhất thiết phải hiển thị cùng chi tiết trước kết nối.
Ghi lại cách proxy được chọn và thời điểm đọc cờ. Để xác định địa chỉ nguồn mà đích nhìn thấy, giữ bằng chứng từ phía đích; dấu proxy kiểu boolean không có trường cho địa chỉ đầu ra đó.