Áp dụng proxy đã chọn cho ứng dụng khách TIdHTTP của Delphi
Kết nối lựa chọn từ danh sách Delphi với cấu hình proxy của TIdHTTP, cùng các giá trị điểm cuối đã được xác thực và một tùy chọn trực tiếp rõ ràng.
Một hộp danh sách có thể hiển thị hàng trăm proxy trong khi TIdHTTP vẫn dùng cùng một cái. Chọn một dòng thay đổi giao diện; yêu cầu tiếp theo chỉ đổi tuyến sau khi điểm cuối được chọn đi vào cấu hình của ứng dụng khách HTTP.
Đối với tải xuống HTTP công khai, các mục từ danh sách proxy HTTP có thể cung cấp các điểm cuối ứng viên. Hãy giữ một máy chủ và một cổng nguyên ở sau mỗi mục được hiển thị. Khi lựa chọn được chấp nhận, hãy áp dụng cả hai trước khi bắt đầu tải xuống:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Đoạn này giả định ứng dụng khách đang rảnh, điểm cuối đã được xác thực và các biến hiện có của ứng dụng. URL đích vẫn là trang web. Trường máy chủ proxy nhận một máy chủ, không phải URL trang web hay nhãn hiển thị.
Một lựa chọn cần ba kết cục khả dĩ
- Một lựa chọn proxy hợp lệ cung cấp máy chủ và cổng từ 1 đến 65535.
- Một tùy chọn Direct rõ ràng sẽ xóa máy chủ proxy cho yêu cầu tiếp theo.
- Một lựa chọn không hợp lệ hoặc thiếu sẽ giữ nguyên cấu hình hiện tại và yêu cầu người dùng sửa lại.
Giữ các kết cục đó tách biệt ngăn một dòng bị bỏ chọn bất ngờ gửi yêu cầu tiếp theo theo đường trực tiếp. Hãy vô hiệu hóa nút yêu cầu khi lựa chọn mới chưa hoàn tất.
Nếu điểm cuối đến dưới dạng văn bản, hãy phân tích và xác thực chúng trước khi thay đổi bất kỳ thuộc tính nào trong hai thuộc tính. TryStrToInt cho phép giao diện báo cáo cổng xấu mà không có ngoại lệ chuyển đổi chưa được bắt. Việc tách tại dấu hai chấm đầu tiên chỉ phù hợp với định dạng tên máy chủ hoặc IPv4 bị giới hạn có chủ ý: một literal IPv6 có dấu hai chấm riêng. Các trường máy chủ và cổng riêng biệt giúp biểu diễn được lưu đơn giản hơn.
Đừng để một cú nhấp trong giao diện sửa đổi ứng dụng khách mà một worker đang dùng. Hãy áp dụng lựa chọn giữa các thao tác, hoặc cấp cho mỗi thao tác đồng thời ứng dụng khách đã cấu hình riêng. Bộ chọn kiểm soát các kết nối trong tương lai; nó không thể chuyển một phiên truyền đã thiết lập sang một lối ra khác.