Sous Indy 10, connectez TIdHTTP à un proxy SOCKS via son IOHandler. En supposant que le formulaire possède déjà les composants Http, SocketHandler et Socks :

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

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

Ici, SocketHandler est un TIdIOHandlerStack et Socks est un TIdSocksInfo. Configurez les composants avant la requête. Pour cet exemple de site public sans identifiants de proxy configurés, choisissez un candidat SOCKS5 dans la liste de proxys SOCKS5 et laissez vide toute route proxy HTTP obsolète comme décrit ci-dessous. Le choix de la version SOCKS compte, car la valeur par défaut est svNoSocks.

Les ProxyParams de TIdHTTP configurent un proxy HTTP. Une route exclusivement SOCKS relève plutôt de TransparentProxy. Y conserver aussi un proxy HTTP peut décrire un autre intermédiaire au-delà de la connexion SOCKS ; effacez donc une configuration de proxy HTTP obsolète lorsqu'elle ne fait pas partie du chemin prévu.

Pour l'authentification SOCKS5 par nom d'utilisateur/mot de passe, réglez Socks.Authentication sur saUsernamePassword et fournissez le nom d'utilisateur et le mot de passe. Un IOHandler compatible SSL doit conserver son rôle TLS ; attachez SOCKS à son interface proxy héritée plutôt que de le remplacer par un gestionnaire simple.

Articles similaires