Un quadre de llista pot mostrar cent proxys mentre TIdHTTP continua utilitzant el mateix. Seleccionar una fila canvia la interfície; la petició següent només canvia de ruta quan el punt final seleccionat arriba a la configuració del client HTTP.

Per a descàrregues HTTP públiques, les entrades de la llista de proxys HTTP poden proporcionar punts finals candidats. Mantingueu un amfitrió i un port enter darrere de cada entrada mostrada. Quan s'accepti la selecció, apliqueu tots dos abans d'iniciar la descàrrega:

IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);

Aquest fragment pressuposa un client inactiu, un punt final validat i les variables existents de l'aplicació. L'URL de destinació continua sent el lloc web. El camp d'amfitrió del proxy accepta un amfitrió, no l'URL del lloc web ni una etiqueta de visualització.

Una selecció necessita tres resultats possibles

  • Una selecció de proxy vàlida proporciona un amfitrió i un port de l'1 al 65535.
  • Una opció Direct explícita esborra l'amfitrió del proxy per a la petició següent.
  • Una selecció no vàlida o absent deixa la configuració actual intacta i demana a l'usuari que la corregeixi.

Mantenir aquests resultats separats evita que una fila desseleccionada enviï inesperadament la petició següent directament. Desactiveu el botó de petició mentre una nova selecció estigui incompleta.

Si els punts finals arriben com a text, analitzeu-los i valideu-los abans de canviar qualsevol de les dues propietats. TryStrToInt permet que la interfície informi d'un port incorrecte sense una excepció de conversió no capturada. Dividir pel primer dos punts només és adequat per a un format d'amfitrió o IPv4 deliberadament restringit: un literal IPv6 conté dos punts propis. Un camp d'amfitrió i un camp de port separats simplifiquen la representació emmagatzemada.

No deixeu que un clic de la interfície modifiqui un client que un treballador ja està utilitzant. Apliqueu la selecció entre operacions, o doneu a cada operació concurrent el seu propi client configurat. El selector controla les connexions futures; no pot moure una transferència establerta cap a una altra sortida.

Articles relacionats