In Indy 10 verbinden Sie TIdHTTP über seinen IOHandler mit einem SOCKS-Proxy. Angenommen, das Formular besitzt bereits die Komponenten Http, SocketHandler und Socks:

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

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

Hier ist SocketHandler ein TIdIOHandlerStack und Socks ein TIdSocksInfo. Konfigurieren Sie die Komponenten vor der Anfrage. Für dieses Beispiel einer öffentlichen Website ohne konfigurierte Proxy-Anmeldedaten wählen Sie einen SOCKS5-Kandidaten aus der SOCKS5-Proxy-Liste und halten Sie eine überholte HTTP-Proxy-Route wie unten beschrieben frei. Die Wahl der SOCKS-Version ist wichtig, weil der Standard svNoSocks ist.

Die ProxyParams von TIdHTTP konfigurieren einen HTTP-Proxy. Eine reine SOCKS-Route gehört stattdessen auf TransparentProxy. Ein dort ebenfalls belassener HTTP-Proxy kann einen weiteren Vermittler jenseits der SOCKS-Verbindung beschreiben; löschen Sie daher eine überholte HTTP-Proxy-Konfiguration, wenn sie nicht Teil des beabsichtigten Pfads ist.

Für die SOCKS5-Authentifizierung mit Benutzername/Passwort setzen Sie Socks.Authentication auf saUsernamePassword und geben Benutzername und Passwort an. Ein SSL-fähiger IOHandler sollte seine TLS-Rolle behalten; hängen Sie SOCKS an seine geerbte Proxy-Schnittstelle an, statt ihn durch einen einfachen Handler zu ersetzen.

Ähnliche Artikel