Правядзіце SOCKS-маршрут TIdHTTP праз яго IOHandler
Далучыце налады SOCKS да IOHandler Indy 10, які выкарыстоўвае TIdHTTP, пакідаючы мэту HTTP у запыце.
У 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 да ўспадкаванага інтэрфейсу проксі, а не замяняйце яго звычайным апрацоўшчыкам.