Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 11:09   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Проблема с редиректом

Пытаюсь через потоки и listview авторизироваться на нескольких сайтах. Код вызова потока использую такой
Код:
var
  Form1: TForm1;
  ind:integer=-1;
  Pay: array [1..2000] of ***;
  HTTP_1: array [1..2000] of TIdHTTP;
  IdCookieManager1_Pay:  array [1..2000] of TIdCookieManager;

procedure TForm1.Button2Click(Sender: TObject);
var
w:integer;
i:integer;
s:integer;
  URL_Pay :string;
  Login :string;
  Pass :string;
  begin
  for i:=0 to Form1.Listview1.Items.count-1 do
  begin
  URL_Pay := 'http://' + Form1.Listview1.Items[i].SubItems[0];
  Login := Form1.Listview1.Items[i].SubItems[1];
  Pass := Form1.Listview1.Items[i].SubItems[2];
  begin
  ind:=-1;
  for w:=1 to Form1.Listview1.Items.count do
  begin
  Pay[w]:=***.Create(True);
  Pay[w].Resume;
  end;
  end;
  end;
  end;
код потока такой
Код:
function getnumber:integer;
begin
  if ind<>form1.Listview1.items.Count then
  inc(ind);
  result:=ind;
end;

procedure ***.Execute;
var
cw : integer; 
st:TStringStream;
s:TStringStream;
inf:TStringList;
begin
IdCookieManager1_Pay:= TIdCookieManager.Create(nil);
HTTP_1 := TIdHTTP.Create(nil);
  cw:=getnumber;
HTTP_1.HandleRedirects := true;//возможность перенаправления
HTTP_1.AllowCookies:=true;//разрешаем куки
s:=TStringStream.Create;
st:=TStringStream.Create;
 inf:=tstringlist.create;
  while cw<form1.Listview1.items.Count do
  begin
  ///
  begin
///
end
else
inf.Add('username=' +Login);
inf.Add('password=' + Pass);
HTTP_1.Post('http://' + URL_Pay +'login.php',inf,s);
inf.Free;
end;
Но выводит ошибку указывает на raise EIdSocketError.CreateError(AErr, WSTranslateSocketErrorMsg(AErr));
в файле IdStackBSDBase.pas, подскажиет в чём ошибка?

Последний раз редактировалось bulldog5293; 09.11.2010 в 18:35.
bulldog5293 вне форума Ответить с цитированием
Старый 09.11.2010, 15:25   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Но выводит ошибку
где выводит ошибку, кто выводит, когда выводит ?
Цитата:
указывает на raise EIdSocketError.CreateError(AErr, WSTranslateSocketErrorMsg(AErr));
в файле IdStackBSDBase.pas,
2. кто указывает ? ни текста ошибки, ни строки, ни результатов хотя бы поверхностного дебага нет....
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 09.11.2010, 16:55   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

в indy боюсь дебагом пользоваться, т.к. комп в накаут может уйти, слабенький он, а выводит табличку с названием Debugger Exception Notification и в ней написано Project ***.exe raised exception class EIdSocketError with message 'Socket Error # 11001 Host not found.'.
bulldog5293 вне форума Ответить с цитированием
Старый 09.11.2010, 16:56   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Host not found - вот и ответ на ваш вопрос
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 09.11.2010, 17:01   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Но сайты на которых должна пройти авторизация существуют, у меня это началось после того как я выставил http_1: array [1..2000] of TIdHTTP; так как до этого авторизировался поочерёдно из-за одного потока, а теперь как выставил в динамику TIdHTTP такая бага появилась
bulldog5293 вне форума Ответить с цитированием
Старый 09.11.2010, 18:08   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Ну подскажите в чём касяк или мне ещё хосты к ним прекручивать? в сети тоже не чего не нашёл
Цитата:
А началось после того как я выставил http_1: array [1..2000] of TIdHTTP; так как до этого авторизировался поочерёдно из-за одного потока, а теперь как выставил в динамику TIdHTTP такая бага появилась
bulldog5293 вне форума Ответить с цитированием
Старый 09.11.2010, 18:25   #7
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Многое не понятно.
Переменные URL_Pay, Login, Pass описаны в procedure TForm1.Button2Click как локальные переменные, а используются еще и в procedure BUX.Execute;
Где описание IdHTTP1_Pay?

Раз у вас компилируется, значит этих проблем нет, а значит код, который вы привели, не совпадает с вашим кодом. Тогда смысл выкладывать этот код и просить помочь?
Voody вне форума Ответить с цитированием
Старый 09.11.2010, 18:31   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

VVood, сорри забыл просто IdHTTP1_Pay переписать на http_1
bulldog5293 вне форума Ответить с цитированием
Старый 09.11.2010, 18:36   #9
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Суть остается: где описывается http_1
И главное, что за URL_Pay, Login, Pass в BUX.Execute? Где они описаны и где идет им присвоение
Voody вне форума Ответить с цитированием
Старый 09.11.2010, 18:53   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

URL_Pay := 'http://' + Form1.Listview1.Items[i].SubItems[0];//сайт
Login := Form1.Listview1.Items[i].SubItems[1];//логин
Pass := Form1.Listview1.Items[i].SubItems[2];//пароль
http_1 это компанент TIdHTTP, просто переименованный
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание с редиректом alexprey Работа с сетью в Delphi 7 18.09.2010 17:18
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37