Appliquer un proxy sélectionné au client TIdHTTP de Delphi
Reliez une sélection de liste Delphi à la configuration de proxy de TIdHTTP, avec des valeurs de point de terminaison validées et une option directe explicite.
Une liste peut afficher cent proxys alors que TIdHTTP continue d'utiliser le même. Sélectionner une ligne modifie l'interface ; la requête suivante ne change d'itinéraire qu'une fois le point de terminaison choisi parvenu dans la configuration du client HTTP.
Pour les téléchargements HTTP publics, les entrées de la liste de proxys HTTP peuvent fournir des points de terminaison candidats. Conservez un hôte et un port entier derrière chaque entrée affichée. Quand la sélection est acceptée, appliquez les deux avant de lancer le téléchargement :
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Cet extrait suppose un client au repos, un point de terminaison validé et les variables existantes de l'application. L'URL cible reste le site web. Le champ hôte du proxy attend un hôte, non l'URL du site ni une étiquette d'affichage.
Une sélection exige trois issues possibles
- Une sélection de proxy valide fournit un hôte et un port de 1 à 65535.
- Un choix Direct explicite efface l'hôte du proxy pour la requête suivante.
- Une sélection invalide ou absente laisse la configuration actuelle intacte et demande à l'utilisateur de la corriger.
Garder ces issues distinctes empêche une ligne désélectionnée d'envoyer par surprise la requête suivante en direct. Désactivez le bouton de requête tant qu'un nouveau choix est incomplet.
Si les points de terminaison arrivent sous forme de texte, analysez-les et validez-les avant de modifier l'une ou l'autre des deux propriétés. TryStrToInt permet à l'interface de signaler un mauvais port sans exception de conversion non interceptée. Le découpage au premier deux-points ne convient qu'à un format nom d'hôte ou IPv4 délibérément restreint : un littéral IPv6 contient ses propres deux-points. Des champs d'hôte et de port séparés simplifient la représentation stockée.
Ne laissez pas un clic dans l'interface modifier un client qu'un worker utilise déjà. Appliquez le choix entre les opérations, ou donnez à chaque opération concurrente son propre client configuré. Le sélecteur contrôle les connexions futures ; il ne peut pas déplacer un transfert établi vers une autre sortie.