სიის ველს შეუძლია ასი პროქსი აჩვენოს, მაშინ როცა TIdHTTP იმავეს იყენებს. მწკრივის არჩევა ინტერფეისს ცვლის; შემდეგი მოთხოვნა მარშრუტს მხოლოდ მაშინ იცვლის, როცა არჩეული საბოლოო წერტილი HTTP კლიენტის კონფიგურაციას მიაღწევს.

საჯარო HTTP ჩამოტვირთვებისთვის HTTP პროქსების სიის ჩანაწერებმა შეიძლება კანდიდატი საბოლოო წერტილები მოგვცეს. ყოველი ნაჩვენები ჩანაწერის უკან შეინახეთ ჰოსტი და მთელი რიცხვი პორტი. როცა არჩევანი მიღებულია, ჩამოტვირთვის დაწყებამდე გამოიყენეთ ორივე:

IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);

ეს ფრაგმენტი ვარაუდობს უმოქმედო კლიენტს, დადასტურებულ საბოლოო წერტილს და აპლიკაციის არსებულ ცვლადებს. სამიზნე URL რჩება ვებსაიტი. პროქსის ჰოსტის ველი იღებს ჰოსტს, არა ვებსაიტის URL-ს ან ჩვენების ეტიკეტს.

არჩევანს სამი შესაძლო შედეგი სჭირდება

  • ვალიდური პროქსის არჩევანი იძლევა ჰოსტს და პორტს 1-დან 65535-მდე.
  • მკაფიო Direct არჩევანი ასუფთავებს პროქსის ჰოსტს შემდეგი მოთხოვნისთვის.
  • არავალიდური ან არმქონე არჩევანი მიმდინარე კონფიგურაციას უცვლელად ტოვებს და მომხმარებელს მის გასწორებას სთხოვს.

ამ შედეგების განცალკევება ხელს უშლის არჩეული მწკრივის მოულოდნელ პირდაპირ გაგზავნას შემდეგი მოთხოვნისას. გამორთეთ მოთხოვნის ღილაკი, სანამ ახალი არჩევანი არასრულია.

თუ საბოლოო წერტილები ტექსტად მოდის, გაანალიზეთ და დაადასტურეთ ისინი ორივე თვისებიდან ერთის შეცვლამდე. TryStrToInt საშუალებას აძლევს ინტერფეისს აცნობოს ცუდი პორტის შესახებ დაუჭერელი კონვერტაციის გამონაკლისის გარეშე. პირველ ორწერტილზე გაყოფა მხოლოდ განზრახ შეზღუდული ჰოსტის სახელის ან IPv4 ფორმატისთვისაა მისაღები: IPv6 ლიტერალს საკუთარი ორწერტილები აქვს. ცალკე ჰოსტის ველი და პორტის ველი აადვილებს შენახულ წარმოდგენას.

ნუ დაუშვებთ, რომ UI-ის დაწკაპუნებამ შეცვალოს კლიენტი, რომელსაც მუშა უკვე იყენებს. გამოიყენეთ არჩევანი ოპერაციებს შორის, ან მიეცით თითოეულ პარალელურ ოპერაციას საკუთარი კონფიგურირებული კლიენტი. ამომრჩევი მართავს მომავალ კავშირებს; მას არ შეუძლია უკვე დამყარებული გადაცემის სხვა გასასვლელზე გადატანა.

დაკავშირებული სტატიები