Список може показувати сотню проксі, а TIdHTTP продовжує використовувати той самий. Вибір рядка змінює інтерфейс; наступний запит змінює маршрут лише після того, як вибрана кінцева точка потрапляє в конфігурацію HTTP-клієнта.

Для публічних HTTP-завантажень записи зі списку HTTP-проксі можуть дати кандидатів у кінцеві точки. Тримайте хост і цілочисельний порт за кожним показаним записом. Коли вибір прийнято, застосуйте обидва до початку завантаження:

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

Цей фрагмент припускає вільний клієнт, перевірену кінцеву точку та наявні змінні застосунку. Цільовий URL залишається сайтом. Поле хоста проксі приймає хост, а не URL сайту чи показовий підпис.

Вибір потребує трьох можливих результатів

  • Правильний вибір проксі дає хост і порт від 1 до 65535.
  • Явний вибір Direct очищає хост проксі для наступного запиту.
  • Неправильний або відсутній вибір залишає поточну конфігурацію недоторканою і просить користувача виправити її.

Розділення цих результатів не дає знятому рядку несподівано надіслати наступний запит напряму. Вимикайте кнопку запиту, доки новий вибір не завершено.

Якщо кінцеві точки надходять як текст, розберіть і перевірте їх, перш ніж змінювати будь-яку з двох властивостей. TryStrToInt дозволяє інтерфейсу повідомити про поганий порт без неперехопленого винятку перетворення. Розподіл за першою двокрапкою придатний лише для навмисно обмеженого формату імені хоста або IPv4: літерал IPv6 містить власні двокрапки. Окремі поля хоста й порту спрощують збережене подання.

Не дозволяйте клікові в інтерфейсі змінювати клієнт, який уже використовує робітник. Застосовуйте вибір між операціями або давайте кожній паралельній операції власний налаштований клієнт. Селектор керує майбутніми з'єднаннями; він не може перемістити вже встановлене передавання на інший вихід.

Схожі статті