En Indy 10, conecte TIdHTTP a un proxy SOCKS mediante su IOHandler. Suponiendo que el formulario ya tiene los componentes Http, SocketHandler y Socks:

Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;

Page := Http.Get('http://example.com/');

Aquí SocketHandler es un TIdIOHandlerStack y Socks es un TIdSocksInfo. Configure los componentes antes de la solicitud. Para este ejemplo de sitio público sin credenciales de proxy configuradas, elija un candidato SOCKS5 de la lista de proxies SOCKS5 y mantenga limpia cualquier ruta de proxy HTTP obsoleta como se describe abajo. Elegir la versión de SOCKS importa porque el valor predeterminado es svNoSocks.

Los ProxyParams de TIdHTTP configuran un proxy HTTP. Una ruta solo SOCKS pertenece a TransparentProxy. Mantener también un proxy HTTP allí puede describir otro intermediario más allá de la conexión SOCKS, así que borre una configuración de proxy HTTP obsoleta cuando no forme parte de la ruta prevista.

Para la autenticación de SOCKS5 con nombre de usuario/contraseña, establezca Socks.Authentication en saUsernamePassword y proporcione su nombre de usuario y contraseña. Un IOHandler compatible con SSL debe conservar su papel TLS; adjunte SOCKS a su interfaz de proxy heredada en lugar de reemplazarlo por un manejador simple.

Artículos relacionados