Bruke en valgt proxy på Delphis TIdHTTP-klient
Koble et listevalg i Delphi til TIdHTTP-proxykonfigurasjonen, med validerte endepunktverdier og et eksplisitt direktevalg.
En listeboks kan vise hundre proxyer mens TIdHTTP fortsetter å bruke den samme. Å velge en rad endrer grensesnittet; neste forespørsel endrer bare rute når endepunktet du valgte, når konfigurasjonen til HTTP-klienten.
For offentlige HTTP-nedlastinger kan oppføringer fra HTTP-proxylisten levere kandidatendepunkter. Hold en vert og en heltallsport bak hver oppføring som vises. Når valget godtas, bruk begge før nedlastingen starter:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Dette utdraget forutsetter en ledig klient, et validert endepunkt og de eksisterende variablene i programmet. Mål-URL-en forblir nettstedet. Vertsfeltet for proxyen tar en vert, ikke URL-en til nettstedet eller en visningsetikett.
Et valg trenger tre mulige utfall
- Et gyldig proxyvalg gir en vert og en port fra 1 til 65535.
- Et eksplisitt Direct-valg tømmer proxyverten for neste forespørsel.
- Et ugyldig eller manglende valg lar gjeldende konfigurasjon være intakt og ber brukeren rette den.
Å holde disse utfallene fra hverandre hindrer en fravalgt rad i å sende neste forespørsel uventet direkte. Slå av forespørselsknappen mens et nytt valg er ufullstendig.
Hvis endepunkter kommer som tekst, analyser og valider dem før du endrer noen av de to egenskapene. TryStrToInt lar grensesnittet rapportere en dårlig port uten et ufanget konverteringsunntak. Å dele ved første kolon passer bare for et bevisst begrenset vertsnavn-eller-IPv4-format: en IPv6-literal inneholder egne kolon. Et eget vertsfelt og portfelt gjør den lagrede representasjonen enklere.
Ikke la et klikk i grensesnittet endre en klient som en arbeider allerede bruker. Bruk valget mellom operasjoner, eller gi hver samtidige operasjon sin egen konfigurerte klient. Velgeren styrer fremtidige tilkoblinger; den kan ikke flytte en etablert overføring til en annen utgang.