Použitie vybratého proxy v klientovi TIdHTTP v Delphi
Prepojte výber zo zoznamu Delphi s konfiguráciou proxy v TIdHTTP, s overenými hodnotami koncového bodu a výslovnou priamou voľbou.
Zoznam môže zobrazovať sto proxy, zatiaľ čo TIdHTTP stále používa tú istú. Výber riadku zmení rozhranie; nasledujúca požiadavka zmení trasu až po tom, čo sa vybraný koncový bod dostane do konfigurácie HTTP klienta.
Pre verejné sťahovanie cez HTTP môžu položky zo zoznamu HTTP proxy poskytnúť kandidátske koncové body. Za každou zobrazenou položkou uchovávajte hostiteľa a celočíselný port. Keď je výber prijatý, použite oboje pred začatím sťahovania:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Tento fragment predpokladá nečinného klienta, overený koncový bod a existujúce premenné aplikácie. Cieľová URL zostáva webom. Pole hostiteľa proxy preberá hostiteľa, nie URL webu ani zobrazovaný popis.
Výber potrebuje tri možné výsledky
- Platný výber proxy dodá hostiteľa a port od 1 do 65535.
- Výslovná voľba Direct vymaže hostiteľa proxy pre nasledujúcu požiadavku.
- Neplatný alebo chýbajúci výber ponechá aktuálnu konfiguráciu nedotknutú a požiada používateľa o opravu.
Udržiavanie týchto výsledkov oddelene bráni tomu, aby odznačený riadok neočakávane odoslal nasledujúcu požiadavku priamo. Kým nie je nový výber dokončený, zakážte tlačidlo požiadavky.
Ak koncové body prichádzajú ako text, analyzujte ich a overte, než zmeníte ktorúkoľvek z oboch vlastností. TryStrToInt umožňuje rozhraniu nahlásiť zlý port bez nezachytenej výnimky prevodu. Delenie na prvej dvojbodke je vhodné len pre zámerne obmedzený formát hostname-alebo-IPv4: literál IPv6 obsahuje vlastné dvojbodky. Samostatné pole hostiteľa a pole portu zjednodušujú uloženú reprezentáciu.
Nedovoľte, aby kliknutie v rozhraní zmenilo klienta, ktorého pracovník už používa. Používajte voľbu medzi operáciami alebo dajte každej súbežnej operácii vlastného nakonfigurovaného klienta. Volič riadi budúce pripojenia; nemôže presunúť už nadviazaný prenos na iný výstup.