Unha caixa de lista pode mostrar cen proxys mentres TIdHTTP segue usando o mesmo. Seleccionar unha fila cambia a interface; a seguinte solicitude só cambia de ruta despois de que o punto final seleccionado chegue á configuración do cliente HTTP.

Para descargas HTTP públicas, as entradas da lista de proxys HTTP poden fornecer puntos finais candidatos. Manteña un host e un porto enteiro detrás de cada entrada mostrada. Cando se acepte a selección, aplique ambos antes de iniciar a descarga:

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

Este fragmento supón un cliente inactivo, un punto final validado e as variables existentes da aplicación. A URL de destino segue a ser o sitio web. O campo de host do proxy recibe un host, non a URL do sitio nin unha etiqueta de visualización.

Unha selección necesita tres resultados posibles

  • Unha selección de proxy válida fornece un host e un porto do 1 ao 65535.
  • Unha opción Direct explícita borra o host do proxy para a seguinte solicitude.
  • Unha selección non válida ou ausente deixa intacta a configuración actual e pide ao usuario que a corrixa.

Manter eses resultados separados evita que unha fila deseleccionada envíe inesperadamente a seguinte solicitude de forma directa. Desactive o botón de solicitude mentres unha nova selección estea incompleta.

Se os puntos finais chegan como texto, analíceos e valídeos antes de cambiar calquera das dúas propiedades. TryStrToInt permite que a interface informe dun porto incorrecto sen unha excepción de conversión non capturada. Dividir polos primeiros dous puntos só é axeitado para un formato de host ou IPv4 deliberadamente restrinxido: un literal IPv6 contén os seus propios dous puntos. Un campo de host e un campo de porto separados simplifican a representación almacenada.

Non deixe que un clic da interface modifique un cliente que un traballador xa está a usar. Aplique a selección entre operacións, ou dea a cada operación simultánea o seu propio cliente configurado. O selector controla as conexións futuras; non pode mover unha transferencia establecida a outra saída.

Artigos relacionados