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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 11:18   #1
denbox
Пользователь
 
Аватар для denbox
 
Регистрация: 05.08.2010
Сообщений: 48
По умолчанию Некорректно работает TidHTTP

Люди, сижу уже 2-ые сутки без сна и никак не могу разобраться... Все действия выполняются в отдельном потоке, Но все было бы замечательно, если не пару непонятных причин...Программа берет и просто останавливается произвольно по середине цикла и висит, либо сервер возвращает пустой ответ... Помогите в чем может быть причина, или как-то нужно особенно обрабатывать ошибки и какие?
p.s Да, все операции выполняются через прокси HTTP, может в них вся беда?
Изображения
Тип файла: png post1.png (3.8 Кб, 39 просмотров)

Последний раз редактировалось denbox; 16.01.2013 в 11:24.
denbox вне форума Ответить с цитированием
Старый 16.01.2013, 11:47   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

HandleRedirects:=true
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 16.01.2013, 11:54   #3
denbox
Пользователь
 
Аватар для denbox
 
Регистрация: 05.08.2010
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
HandleRedirects:=true
Ну я не на столько туп) Все включено.. не в этом проблема.. проблема в том, что сервер не возвращает ничего.. а просто обрубает запрос...
denbox вне форума Ответить с цитированием
Старый 16.01.2013, 12:03   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

302 - редирект
код сюда, по фотографии не лечим
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 16.01.2013, 12:13   #5
denbox
Пользователь
 
Аватар для denbox
 
Регистрация: 05.08.2010
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
302 - редирект
код сюда, по фотографии не лечим
Кусок кода... ибо не влазит все
Код:
...............................................................
HTTP.Request.Accept:='text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
 //HTTP.Request.Connection:='Keep-Alive';
 HTTP.Request.UserAgent:='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17';
 HTTP.AllowCookies:=true;
 //HTTP.Request.CharSet:='Windows-1251';
 HTTP.HandleRedirects:=true;
 data.Add('email='+login);
 data.Add('pass='+pass);
 data.Add('expire=');
 data.Add('vk=');
 error:=false;
 try
 PageProfile:=HTTP.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vk.com&email='+login+'&pass='+URLEncode((pass)));
 if pos('parent.onLoginDone', PageProfile)<>0 then begin
 PageProfile:=HTTP.get('http://vk.com/login.php');
  if (pos('blocked_phone', PageProfile)<>0) or (pos('<title>????</title>', PageProfile)<>0) or (pos('<div id="login_blocked_wrap">', PageProfile)<>0) then begin
form1.sMemo1.Lines.Add(login+' Аккаунт Невалидный!');
  form1.sMemo1.Lines.Add('=============================================');
  form1.sLabel11.Caption:=inttostr(strtoint(form1.sLabel11.Caption)+1);
  good:=false;
  end else form1.sMemo1.Lines.Add(login+' Зашли в аккаунт!');
 end;
 if pos('parent.onLoginFailed', PageProfile)<>0 then begin
 form1.sMemo1.Lines.Add(login+' Аккаунт Невалидный!');
  form1.sMemo1.Lines.Add('=============================================');
  form1.sLabel11.Caption:=inttostr(strtoint(form1.sLabel11.Caption)+1);
  good:=false;
  end;
 if pos('parent.onLoginCaptcha(''', PageProfile)<>0 then begin
 delete(PageProfile, 1, pos('parent.onLoginCaptcha(''', PageProfile)+22);
 delete(PageProfile, pos('''', PageProfile), length(PageProfile));
 form1.sMemo1.Lines.Add(login+' Получаем капчу!');
  f:=TIdMultiPartFormDataStream.Create;
  Ms  := TMemoryStream.Create;
  Jpg := TJpegImage.Create;
  HTTP.Get('http://vk.com/captcha.php?s=1&sid=' + PageProfile, Ms);
  Ms.Position := 0;
  Jpg.LoadFromStream(ms);
  jpg.SaveToFile('Captcha/capthca'+inttostr(GetCurrentThreadId)+'.jpg');
  sleep(1000);
  f.AddFile('file', 'Captcha/capthca'+inttostr(GetCurrentThreadId)+'.jpg', 'image/jpeg');
  f.AddFormField('method','post');
  f.AddFormField('key', form1.sEdit6.Text);
  Cid:=HTTP1.Post('http://antigate.com/in.php', f);
   jpg.Free;
   MS.Free;
   while (pos('ERROR_NO_SLOT_AVAILABLE', Cid)<>0) or (pos('ERROR_ZERO_CAPTCHA_FILESIZE', Cid)<>0) do
   begin
   sleep(5000);
   try
   Cid:=HTTP1.Post('http://antigate.com/in.php', f);
   except
   end;
   end;
   f.Free;
   delete(Cid, 1, 3);
   sleep(20000);
   /////////ПРОВЕРЯЕМ СТАТУС КАПЧИ
   capa:=http1.Get('http://antigate.com/res.php?key='+form1.sEdit6.Text+'&action=get&id='+Cid);
   while pos('OK',capa)=0 do begin
   sleep(5000);
   capa:=http1.Get('http://antigate.com/res.php?key='+form1.sEdit6.Text+'&action=get&id='+Cid);
   end;
   delete(capa, 1, 3);
   http1.Free;
 data.Clear;
 data.Add('act=login');
 data.Add('q=1');
 data.Add('al_frame=1');
 data.Add('from_host=vk.com');
 //data.add ('op=a_login_attempt');
 data.Add('login='+login);
 data.Add('pass='+pass);
 data.add('captcha_sid='+PageProfile);
 data.add('captcha_key='+capa);
 PageProfile:=HTTP.post('http://vk.com/login.php',data);
  if (pos('blocked_phone', PageProfile)<>0) or (pos('<title>????</title>', PageProfile)<>0) or (pos('<div id="login_blocked_wrap">', PageProfile)<>0) then begin
form1.sMemo1.Lines.Add(login+' Аккаунт Невалидный!');
  form1.sMemo1.Lines.Add('=============================================');
  form1.sLabel11.Caption:=inttostr(strtoint(form1.sLabel11.Caption)+1);
  good:=false;
  end;
  end;
  if good=true then begin
 PageProfile:=HTTP.get('http://vk.com/login.php');
 if pos('badbrowser.php', PageProfile)=0 then begin
  form1.sMemo1.Lines.Add(login+' Аккаунт Невалидный!');
  form1.sMemo1.Lines.Add('=============================================');
  good:=false;
 end;
 delete(PageProfile, 1, pos('id',PageProfile)+3);
 delete(PageProfile, pos(',',PageProfile), length(PageProfile));
   html:=PageProfile;
   id:=html;
   end;
  except on E : Exception do
  begin
  error:=true;
  NomerID:=NomerID-1;
  good:=false;
  form1.sMemo1.Lines.Add(login+' Ошибка, перезаходим!');
 end;
 end;
denbox вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректно работает программа. JIOBEJIAC Помощь студентам 0 19.12.2011 20:47
Некорректно работает программа Dimakat Помощь студентам 2 07.09.2010 14:54
float в ие-6 работает некорректно cratte HTML и CSS 3 17.02.2010 08:50
Некорректно работает запрос zulu80 БД в Delphi 10 16.02.2009 13:35