Leda SOCKS-rutten för TIdHTTP genom dess IOHandler
Koppla SOCKS-inställningarna till den Indy 10 IOHandler som TIdHTTP använder, medan HTTP-målet stannar på begäran.
I Indy 10 ansluter du TIdHTTP till en SOCKS-proxy via dess IOHandler. Förutsatt att formuläret redan äger komponenterna Http, SocketHandler och Socks:
Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;
Page := Http.Get('http://example.com/');
Här är SocketHandler en TIdIOHandlerStack och Socks en TIdSocksInfo. Konfigurera komponenterna före begäran. För det här exemplet med en offentlig webbplats utan konfigurerade proxyuppgifter väljer du en SOCKS5-kandidat från SOCKS5-proxylistan och håll en eventuellt inaktuell HTTP-proxyväg rensad som beskrivs nedan. Valet av SOCKS-version spelar roll eftersom standardvärdet är svNoSocks.
TIdHTTP:s ProxyParams konfigurerar en HTTP-proxy. En ren SOCKS-väg hör i stället hemma på TransparentProxy. Att behålla en HTTP-proxy där också kan beskriva en annan mellanhand bortom SOCKS-anslutningen, så rensa en inaktuell HTTP-proxykonfiguration när den inte ingår i den avsedda vägen.
För SOCKS5-autentisering med användarnamn/lösenord ställer du in Socks.Authentication på saUsernamePassword och anger användarnamn och lösenord. En SSL-kapabel IOHandler bör behålla sin TLS-roll; koppla SOCKS till dess ärvda proxygränssnitt i stället för att ersätta den med en enkel hanterare.