Apache HttpClient 5.5 כולל מסלול תצורת SOCKS בהגדרות השקע של מנהל החיבורים. הדוגמה המתוחזקת שלו משתמשת ב-setSocksProxyAddress:

InetSocketAddress socks =
    new InetSocketAddress("proxy.example.net", 1080);

PoolingHttpClientConnectionManager manager =
    PoolingHttpClientConnectionManagerBuilder.create()
        .setDefaultSocketConfig(
            SocketConfig.custom()
                .setSocksProxyAddress(socks)
                .build()
        )
        .build();

CloseableHttpClient client = HttpClients.custom()
    .setConnectionManager(manager)
    .build();

הקטע משתמש בחבילות org.apache.hc של HttpClient 5 וב-SocketConfig של HttpCore. בקשות שנעשות עם לקוח זה משתמשות במאגר שהוגדר לעיל. סגרו את הלקוח כאשר היקף הבעלות של היישום מסתיים.

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

אלה הגדרות השקע המוגדרות כברירת מחדל עבור מנהל זה. יישום שמשתמש בפותר SocketConfig לכל מסלול צריך להחיל את הגדרת ה-SOCKS הרצויה דרך אותה מדיניות במקום. הדוגמה משמרת את מדיניות ה-DNS הרגילה של היעד במנהל החיבורים; פתרון שמות מרחוק דורש תצורה מאומתת בנפרד.

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