Poprowadź trasę SOCKS w TIdHTTP przez jego IOHandler
Podłącz ustawienia SOCKS do IOHandlera Indy 10 używanego przez TIdHTTP, pozostawiając cel HTTP w żądaniu.
W Indy 10 połącz TIdHTTP z proxy SOCKS przez jego IOHandler. Zakładając, że formularz ma już komponenty Http, SocketHandler i Socks:
Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;
Page := Http.Get('http://example.com/');
Tutaj SocketHandler to TIdIOHandlerStack, a Socks to TIdSocksInfo. Skonfiguruj komponenty przed żądaniem. W tym przykładzie publicznej witryny bez skonfigurowanych danych proxy wybierz kandydata SOCKS5 z listy proxy SOCKS5 i utrzymuj wszelką przestarzałą trasę proxy HTTP wyczyszczoną, jak opisano poniżej. Wybór wersji SOCKS ma znaczenie, ponieważ domyślnie jest svNoSocks.
ProxyParams w TIdHTTP konfigurują proxy HTTP. Trasa wyłącznie SOCKS należy raczej do TransparentProxy. Utrzymywanie tam również proxy HTTP może opisywać kolejnego pośrednika poza połączeniem SOCKS, więc wyczyść przestarzałą konfigurację proxy HTTP, gdy nie jest ona częścią zamierzonej ścieżki.
W przypadku uwierzytelniania SOCKS5 nazwą użytkownika i hasłem ustaw Socks.Authentication na saUsernamePassword i podaj nazwę użytkownika oraz hasło. IOHandler obsługujący SSL powinien zachować swoją rolę TLS; dołącz SOCKS do jego odziedziczonego interfejsu proxy, zamiast zastępować go zwykłym handlerem.