Στο Indy 10, συνδέστε το TIdHTTP σε ένα διακομιστή μεσολάβησης SOCKS μέσω του IOHandler του. Υποθέτοντας ότι η φόρμα κατέχει ήδη τα στοιχεία Http, SocketHandler και Socks:

Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;

Page := Http.Get('http://example.com/');

Εδώ το SocketHandler είναι ένα TIdIOHandlerStack και το Socks είναι ένα TIdSocksInfo. Ρυθμίστε τα στοιχεία πριν από το αίτημα. Για αυτό το παράδειγμα δημόσιου ιστότοπου χωρίς διαπιστευτήρια μεσολαβητή, επιλέξτε έναν υποψήφιο SOCKS5 από τη λίστα μεσολαβητών SOCKS5 και κρατήστε καθαρή οποιαδήποτε παρωχημένη διαδρομή HTTP, όπως περιγράφεται παρακάτω. Η επιλογή της έκδοσης SOCKS έχει σημασία, επειδή η προεπιλογή είναι svNoSocks.

Τα ProxyParams του TIdHTTP ρυθμίζουν ένα μεσολαβητή HTTP. Μια διαδρομή μόνο SOCKS ανήκει στο TransparentProxy. Η διατήρηση ενός μεσολαβητή HTTP εκεί μπορεί επίσης να περιγράψει έναν άλλο ενδιάμεσο πέρα από τη σύνδεση SOCKS, οπότε καθαρίστε μια παρωχημένη ρύθμιση μεσολαβητή HTTP όταν δεν αποτελεί μέρος της επιδιωκόμενης διαδρομής.

Για έλεγχο ταυτότητας SOCKS5 με όνομα χρήστη/κωδικό, ορίστε το Socks.Authentication σε saUsernamePassword και δώστε το όνομα χρήστη και τον κωδικό. Ένα IOHandler με δυνατότητα SSL πρέπει να διατηρήσει το ρόλο TLS· συνδέστε το SOCKS στη διεπαφή μεσολαβητή που κληρονομεί αντί να το αντικαταστήσετε με έναν απλό handler.

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