In Indy 10, collega TIdHTTP a un proxy SOCKS tramite il suo IOHandler. Supponendo che il form possieda già i componenti Http, SocketHandler e Socks:

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

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

Qui SocketHandler è un TIdIOHandlerStack e Socks è un TIdSocksInfo. Configura i componenti prima della richiesta. Per questo esempio di sito pubblico senza credenziali proxy configurate, scegli un candidato SOCKS5 dall'elenco dei proxy SOCKS5 e mantieni pulita qualsiasi rotta proxy HTTP obsoleta come descritto sotto. La scelta della versione SOCKS conta perché il valore predefinito è svNoSocks.

I ProxyParams di TIdHTTP configurano un proxy HTTP. Una rotta solo SOCKS appartiene invece a TransparentProxy. Mantenere lì anche un proxy HTTP può descrivere un altro intermediario oltre la connessione SOCKS, quindi cancella una configurazione proxy HTTP obsoleta quando non fa parte del percorso previsto.

Per l'autenticazione SOCKS5 con nome utente/password, imposta Socks.Authentication su saUsernamePassword e fornisci nome utente e password. Un IOHandler abilitato a SSL dovrebbe conservare il suo ruolo TLS; collega SOCKS alla sua interfaccia proxy ereditata invece di sostituirlo con un gestore semplice.

Articoli correlati