Applicare un proxy selezionato al client TIdHTTP di Delphi
Collega una selezione dall'elenco Delphi alla configurazione proxy di TIdHTTP, con valori di endpoint convalidati e un'opzione diretta esplicita.
Una casella di elenco può mostrare cento proxy mentre TIdHTTP continua a usarne uno solo. Selezionare una riga cambia l'interfaccia; la richiesta successiva cambia percorso solo dopo che l'endpoint scelto raggiunge la configurazione del client HTTP.
Per i download HTTP pubblici, le voci del elenco di proxy HTTP possono fornire endpoint candidati. Mantieni un host e una porta intera dietro ogni voce mostrata. Quando la selezione viene accettata, applica entrambi prima di avviare il download:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Questo frammento presuppone un client inattivo, un endpoint convalidato e le variabili esistenti dell'applicazione. L'URL di destinazione resta il sito web. Il campo host del proxy accetta un host, non l'URL del sito né un'etichetta di visualizzazione.
Una selezione richiede tre esiti possibili
- Una selezione proxy valida fornisce un host e una porta da 1 a 65535.
- Una scelta Direct esplicita svuota l'host del proxy per la richiesta successiva.
- Una selezione non valida o assente lascia intatta la configurazione corrente e chiede all'utente di correggerla.
Mantenere distinti questi esiti impedisce a una riga deselezionata di inviare inaspettatamente la richiesta successiva in diretta. Disabilita il pulsante di richiesta finché una nuova scelta non è completa.
Se gli endpoint arrivano come testo, analizzali e convalidali prima di modificare una qualsiasi delle due proprietà. TryStrToInt consente all'interfaccia di segnalare una porta errata senza un'eccezione di conversione non gestita. La divisione al primo due punti è adatta solo a un formato nome host-o-IPv4 deliberatamente limitato: un letterale IPv6 contiene due punti propri. Campi separati per host e porta semplificano la rappresentazione memorizzata.
Non lasciare che un clic nell'interfaccia modifichi un client che un worker sta già usando. Applica la scelta tra un'operazione e l'altra, oppure assegna a ogni operazione concorrente il proprio client configurato. Il selettore controlla le connessioni future; non può spostare un trasferimento già avviato su un'altra uscita.