How do I use a TIdTCPClient with a HTTP Tunneling Proxy?

Previous  Top  Next

For Indy 8.0 and Indy 9.0


Both Indy 8.0 and Indy 9.0 do not support HTTP Tunneling proxies so you have to use Indy 10.


For Indy 10


1.Create an IOHandler such as TIdIOHandlerStack or SSL IOHandler and assign the TCPClient.IOHandler property this. 
2.Create a TIdCustomTransparentProxy object and assign it to the IOHandler's TransparentProxy property.
3.Set the TIdCustomTransparentProxy properties as required. 
4.If there is another proxy that the HTTP Tunneling Proxy itself needs to use, you have to use, set the Chained Proxy to a TIdCustomTransparentProxy such as TIdSocksInfo for a SOCKS Proxy or a TIdConnectThroughHttpProxy for another HTTP Tunneling Proxy.


For TIdFTP in Indy 10


You have to set the Passive property to true (PASV) to work with a HTTP Tunneling Proxy because standard FTP PORT transfers will not work in this configuration.  You should allow the user to be able to choose between using PORT transfers (TIdFTP.Passive := False) and using PASV transfers (TIdFTP.Passive := True).