Το Apache HttpClient 5.5 περιλαμβάνει διαδρομή διαμόρφωσης SOCKS στις ρυθμίσεις socket του διαχειριστή συνδέσεων. Το συντηρούμενο παράδειγμά του χρησιμοποιεί 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. Τα αιτήματα που γίνονται με αυτόν τον πελάτη χρησιμοποιούν τη δεξαμενή που διαμορφώθηκε παραπάνω. Κλείστε τον πελάτη όταν τελειώσει το εύρος ιδιοκτησίας της εφαρμογής.

Τοποθετήστε το πραγματικό URL του ιστότοπου στο αίτημα όπως συνήθως. Για επιτρεπόμενα αιτήματα σε δημόσιους ιστότοπους χωρίς έλεγχο ταυτότητας διακομιστή μεσολάβησης, η λίστα διακομιστών μεσολάβησης SOCKS προσφέρει υποψήφιες διευθύνσεις· επιλέξτε έκδοση SOCKS που υποστηρίζει το πραγματικό περιβάλλον εκτέλεσης. Η διεύθυνση SOCKS διαμορφώνει τη μεταφορά που χρησιμοποιείται για την προσέγγισή της· δεν είναι διαδρομή προωθητικού διακομιστή μεσολάβησης HTTP που παρέχεται ως HttpHost.

Αυτές είναι οι προεπιλεγμένες ρυθμίσεις socket για αυτόν τον διαχειριστή. Μια εφαρμογή που χρησιμοποιεί επίλυση SocketConfig ανά διαδρομή θα πρέπει να εφαρμόζει την επιθυμητή ρύθμιση SOCKS μέσω αυτής της πολιτικής. Το παράδειγμα διατηρεί την κανονική πολιτική DNS προορισμού του διαχειριστή συνδέσεων· η απομακρυσμένη επίλυση ονομάτων απαιτεί ξεχωριστά επαληθευμένη διαμόρφωση.

Σχετικά άρθρα