در Indy 10، TIdHTTP را از طریق IOHandler آن به یک پروکسی SOCKS متصل کنید. با فرض اینکه فرم از قبل مالک اجزای Http، SocketHandler و Socks است:

Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;

Page := Http.Get('http://example.com/');

در اینجا SocketHandler یک TIdIOHandlerStack و Socks یک TIdSocksInfo است. اجزا را پیش از درخواست پیکربندی کنید. برای این نمونهٔ سایت عمومی که اعتبارنامهٔ پروکسی تنظیم‌نشده دارد، یک نامزد SOCKS5 از فهرست پروکسی‌های SOCKS5 انتخاب کنید و هر مسیر پروکسی HTTP منسوخ را همان‌گونه که در ادامه توضیح داده شده پاک نگه دارید. انتخاب نسخهٔ SOCKS اهمیت دارد زیرا مقدار پیش‌فرض svNoSocks است.

ProxyParams در TIdHTTP یک پروکسی HTTP را پیکربندی می‌کند. مسیری که فقط SOCKS است به TransparentProxy تعلق دارد. نگه داشتن یک پروکسی HTTP در آنجا نیز می‌تواند واسطهٔ دیگری فراتر از اتصال SOCKS را توصیف کند، پس وقتی پیکربندی پروکسی HTTP منسوخ بخشی از مسیر موردنظر نیست آن را پاک کنید.

برای احراز هویت نام کاربری/گذرواژهٔ SOCKS5، Socks.Authentication را روی saUsernamePassword تنظیم کنید و نام کاربری و گذرواژه را ارائه دهید. IOHandler دارای قابلیت SSL باید نقش TLS خود را حفظ کند؛ SOCKS را به رابط پروکسی ارث‌بری‌شدهٔ آن متصل کنید نه اینکه آن را با یک هندلر ساده جایگزین کنید.

مقالات مرتبط