Kiválasztott proxy alkalmazása a Delphi TIdHTTP kliensén
Kapcsolja össze a Delphi lista kiválasztását a TIdHTTP proxykonfigurációjával, érvényesített végpontértékekkel és egy kifejezett közvetlen lehetőséggel.
Egy listamező száz proxyt is megjeleníthet, miközben a TIdHTTP ugyanazt használja. Egy sor kijelölése megváltoztatja a felületet; a következő kérés csak akkor vált útvonalat, amikor a kiválasztott végpont eljut a HTTP kliens konfigurációjába.
Nyilvános HTTP-letöltésekhez az HTTP-proxylista bejegyzései jelölt végpontokat adhatnak. Minden megjelenített bejegyzés mögött tartson egy gazdagépet és egy egész portot. Ha a kiválasztást elfogadják, a letöltés indítása előtt alkalmazza mindkettőt:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Ez a részlet tétlen klienst, érvényesített végpontot és az alkalmazás meglévő változóit feltételezi. A cél URL a webhely marad. A proxy gazdagépmezője gazdagépet vesz át, nem a webhely URL-jét és nem egy megjelenítési címkét.
A kiválasztásnak három lehetséges kimenetre van szüksége
- Egy érvényes proxyválasztás gazdagépet és 1 és 65535 közötti portot ad.
- Egy kifejezett Direct választás törli a proxy gazdagépét a következő kéréshez.
- Az érvénytelen vagy hiányzó kiválasztás érintetlenül hagyja az aktuális konfigurációt, és megkéri a felhasználót, hogy javítsa ki.
E kimenetek külön tartása megakadályozza, hogy egy kijelöletlen sor váratlanul közvetlenül küldje el a következő kérést. Tiltsa le a kérésgombot, amíg egy új választás hiányos.
Ha a végpontok szövegként érkeznek, elemezze és érvényesítse őket, mielőtt bármelyik tulajdonságot módosítaná. A TryStrToInt lehetővé teszi a felületnek, hogy elkapott konverziós kivétel nélkül jelezzen egy rossz portot. Az első kettőspontnál való felosztás csak egy szándékosan korlátozott gazdagépnév-vagy-IPv4-formátumhoz alkalmas: az IPv6-literál saját kettőspontokat tartalmaz. A külön gazdagépmező és portmező egyszerűbbé teszi a tárolt reprezentációt.
Ne engedje, hogy egy felületi kattintás módosítson egy klienst, amelyet egy munkás már használ. A választást a műveletek között alkalmazza, vagy adjon minden párhuzamos műveletnek saját konfigurált klienst. A választó a jövőbeli kapcsolatokat vezérli; nem tud egy már létrejött átvitelt másik kimenetre mozgatni.