Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое создание компонентов 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'))


Наверх

Титульная страница Поиск, карта сайта Написать письмо