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