În Indy 10, conectează TIdHTTP la un proxy SOCKS prin IOHandler-ul său. Presupunând că formularul deține deja componentele 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/');

Aici SocketHandler este un TIdIOHandlerStack, iar Socks este un TIdSocksInfo. Configurează componentele înainte de cerere. Pentru acest exemplu de site public fără acreditări de proxy configurate, alege un candidat SOCKS5 din lista de proxy-uri SOCKS5 și menține curată orice rută de proxy HTTP învechită, așa cum se descrie mai jos. Alegerea versiunii SOCKS contează, deoarece valoarea implicită este svNoSocks.

ProxyParams din TIdHTTP configurează un proxy HTTP. O rută doar SOCKS aparține în schimb lui TransparentProxy. Păstrarea acolo și a unui proxy HTTP poate descrie un alt intermediar dincolo de conexiunea SOCKS, așa că șterge o configurație de proxy HTTP învechită atunci când nu face parte din calea dorită.

Pentru autentificarea SOCKS5 cu nume de utilizator/parolă, setează Socks.Authentication la saUsernamePassword și furnizează numele de utilizator și parola. Un IOHandler cu suport SSL ar trebui să-și păstreze rolul TLS; atașează SOCKS la interfața sa de proxy moștenită în loc să îl înlocuiești cu un handler simplu.

Articole similare