Проведіть 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 до його успадкованого інтерфейсу проксі, а не замінюйте його звичайним обробником.