اعمال پروکسی انتخابشده روی کلاینت TIdHTTP در Delphi
انتخاب یک ردیف از فهرست Delphi را به پیکربندی پروکسی TIdHTTP وصل کنید، با مقادیر نقطهٔ پایانی اعتبارسنجیشده و یک گزینهٔ مستقیم صریح.
یک کادر فهرست میتواند صد پروکسی را نشان دهد، در حالی که TIdHTTP همچنان همان یکی را به کار میبرد. انتخاب یک ردیف رابط کاربری را تغییر میدهد؛ درخواست بعدی تنها زمانی مسیر را عوض میکند که نقطهٔ پایانی انتخابشده به پیکربندی کلاینت HTTP برسد.
برای دانلودهای عمومی HTTP، ورودیهای فهرست پروکسی HTTP میتوانند نقطههای پایانی نامزد را فراهم کنند. پشت هر ورودی نمایشدادهشده یک میزبان و یک درگاه صحیح نگه دارید. وقتی انتخاب پذیرفته شد، هر دو را پیش از آغاز دانلود اعمال کنید:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
این قطعه یک کلاینت بیکار، یک نقطهٔ پایانی اعتبارسنجیشده و متغیرهای موجود برنامه را فرض میکند. نشانی URL هدف همان وبسایت میماند. فیلد میزبان پروکسی یک میزبان میگیرد، نه نشانی وبسایت و نه یک برچسب نمایشی.
یک انتخاب به سه پیامد ممکن نیاز دارد
- یک انتخاب معتبر پروکسی، میزبان و درگاهی از 1 تا 65535 فراهم میکند.
- یک انتخاب صریح مستقیم، میزبان پروکسی را برای درخواست بعدی پاک میکند.
- یک انتخاب نامعتبر یا غایب، پیکربندی کنونی را دستنخورده میگذارد و از کاربر میخواهد آن را اصلاح کند.
جدا نگهداشتن این پیامدها مانع میشود ردیفی که انتخابش لغو شده است درخواست بعدی را بهطور غیرمنتظره مستقیم بفرستد. تا زمانی که انتخاب تازه ناقص است، دکمهٔ درخواست را غیرفعال کنید.
اگر نقطههای پایانی بهصورت متن میرسند، پیش از تغییر هر یک از دو ویژگی آنها را تجزیه و اعتبارسنجی کنید. TryStrToInt به رابط اجازه میدهد درگاه نامناسب را بدون استثنای تبدیلنشده گزارش کند. تقسیم در نخستین دونقطه فقط برای قالب میزباننام یا IPv4 که آگاهانه محدود شده مناسب است: یک مقدار IPv6 دونقطههای خودش را دارد. فیلد جداگانهٔ میزبان و فیلد درگاه، نمایش ذخیرهشده را سادهتر میکنند.
نگذارید یک کلیک رابط کاربری، کلاینتی را که یک کارگر هماکنون به کار میبرد تغییر دهد. انتخاب را میان عملیات اعمال کنید، یا به هر عملیات همزمان کلاینت پیکربندیشدهٔ خودش را بدهید. انتخابگر اتصالهای آینده را کنترل میکند؛ نمیتواند انتقالی برقرارشده را به خروجی دیگری منتقل کند.