Прымяніць выбраны проксі да кліента TIdHTTP у Delphi
Злучыце выбар са спіса Delphi з канфігурацыяй проксі TIdHTTP, з праверанымі значэннямі канчатковага пункта і яўным прамым варыянтам.
Спіс можа паказваць сотню проксі, а TIdHTTP працягвае выкарыстоўваць адзін і той жа. Выбар радка змяняе інтэрфейс; наступны запыт змяняе маршрут толькі пасля таго, як выбраны канчатковы пункт трапляе ў канфігурацыю HTTP-кліента.
Для публічных HTTP-спампоўванняў запісы са спіса HTTP-проксі могуць даць кандыдатаў у канчатковыя пункты. Трымайце хост і цэлалікавы порт за кожным паказаным запісам. Калі выбар прыняты, прымяніце абодва да пачатку спампоўвання:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Гэты фрагмент мяркуе прастойны кліент, правераны канчатковы пункт і існуючыя зменныя праграмы. Мэтавы URL застаецца сайтам. Поле хоста проксі прымае хост, а не URL сайта і не подпіс для адлюстравання.
Выбар патрабуе трох магчымых вынікаў
- Сапраўдны выбар проксі дае хост і порт ад 1 да 65535.
- Яўны выбар Direct ачышчае хост проксі для наступнага запыту.
- Няправільны або адсутны выбар пакідае бягучую канфігурацыю нязменнай і просіць карыстальніка выправіць яе.
Захаванне гэтых вынікаў асобна перашкаджае таму, каб радок без выбару нечакана адправіў наступны запыт напрамую. Адключыце кнопку запыту, пакуль новы выбар не завершаны.
Калі канчатковыя пункты прыходзяць як тэкст, разбярыце і праверце іх перад зменай любой з уласцівасцей. TryStrToInt дазваляе інтэрфейсу паведаміць пра дрэнны порт без незлоўленага выключэння пераўтварэння. Раздзяленне па першым двукроп'і падыходзіць толькі для наўмысна абмежаванага фармату hostname-або-IPv4: літарал IPv6 мае ўласныя двукроп'і. Асобныя поле хоста і поле порта спрашчаюць захаванае прадстаўленне.
Не дазваляйце кліку ў інтэрфейсе змяняць кліент, які ўжо выкарыстоўвае працоўны паток. Прымяняйце выбар паміж аперацыямі або давайце кожнай паралельнай аперацыі ўласны настроены кліент. Сялектар кіруе будучымі злучэннямі; ён не можа перанесці ўжо ўсталяваную перадачу на іншы выхад.