Aplicar un proxy seleccionado ao cliente TIdHTTP de Delphi
Conecte unha selección da lista de Delphi coa configuración de proxy de TIdHTTP, con valores de punto final validados e unha opción directa explícita.
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.