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 אחר אינו חייב לחשוף את אותם פרטים לפני חיבור.

יש לתעד כיצד נבחר הפרוקסי ומתי נקרא הדגל. כדי לבסס את כתובת המקור שהיעד רואה, שמרו ראיות מצד היעד; לסמן פרוקסי בוליאני אין שדה לכתובת היציאה הזו.

מאמרים קשורים