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

Похожие статьи