![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое создание компонентов Indy [WinXP]
S_T_E_P_A_N___ © (2007-03-24 13:27:00)Добрый день. Есть такая задача. Нужно открыть одну страницу через SOCKS прокси сервер. Это нужно сделать несколько раз, причем "параллельно", потому использую потоки. Делаю ето так:
idHTTP := TidHTTP.Create(nil);
IdIOHandlerStack:= TIdIOHandlerStack.Create(nil);
SocksInfo:=TIdSocksInfo.Create;
IdIOHandlerStack.TransparentProxy:=SocksInfo;
idHTTP.ReadTimeout := TimeOut;
SocksInfo.Host:=Host;
SocksInfo.Port:=Port;
SocksInfo.Version:=svSocks5;
ShowMessage(idHTTP.Get('htttp://mysite.com/getmyIP.cgi'));
Скрипт возвращает мой IP а не IP прокси, то есть фактически прокси не используется. Если создаю компоненты с аналогичными настройками в DesignTime, все работает.
В чем может быть проблема? Может Delphi инициализирует еще какие-то свойства, а я нет? Использую Delphi 2005/Indy 10
Спасибо за ответ!
S_T_E_P_A_N___ (2007-03-24 14:20:00) [1]Нашел решение. Сначала нужно задавать параметры прокси, а затем уже делать связки между компонентами.
idHTTP := TidHTTP.Create(nil);
IdIOHandlerStack:= TIdIOHandlerStack.Create(nil);
SocksInfo:=TIdSocksInfo.Create;
idHTTP.ReadTimeout := TimeOut;
SocksInfo.Host:=Host;
SocksInfo.Port:=Port;
SocksInfo.Version:=svSocks5;
idHTTP.IOHandler:=IdIOHandlerStack;
IdIOHandlerStack.TransparentProxy:=SocksInfo;
ShowMessage(idHTTP.Get('htttp://mysite.com/getmyIP.cgi'));
Вопрос снимается.
S_T_E_P_A_N___ (2007-03-24 13:34:00) [2]Извиняюсь за ошибку в коде. Должно быть так:
idHTTP := TidHTTP.Create(nil);
IdIOHandlerStack:= TIdIOHandlerStack.Create(nil);
idHTTP.IOHandler:=IdIOHandlerStack;
SocksInfo:=TIdSocksInfo.Create;
IdIOHandlerStack.TransparentProxy:=SocksInfo;
idHTTP.ReadTimeout := TimeOut;
SocksInfo.Host:=Host;
SocksInfo.Port:=Port;
SocksInfo.Version:=svSocks5;
ShowMessage(idHTTP.Get('htttp://mysite.com/getmyIP.cgi'))