ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi 2009] Проблема с Indy
  #1  
Старый 08.05.2010, 20:39
crazyserega1994
Познающий
Регистрация: 26.12.2007
Сообщений: 34
Провел на форуме:
150392

Репутация: 8
По умолчанию [Delphi 2009] Проблема с Indy

Добрый вечер! При попытке GET запроса на любую страницу, вместо Русских символом вижу:
Код:
 'Áûñòðîå ðåäàêòèðîâàíèå'
Из-за этого не возможно спарсить страницу, только английский норм показывает >_>
 
Ответить с цитированием

  #2  
Старый 08.05.2010, 21:35
TrueBit
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме:
2482290

Репутация: 29
По умолчанию

Цитата:
Сообщение от crazyserega1994  
Добрый вечер! При попытке GET запроса на любую страницу, вместо Русских символом вижу:
Код:
 'Áûñòðîå ðåäàêòèðîâàíèå'
Из-за этого не возможно спарсить страницу, только английский норм показывает >_>
Utf8toAnsi
 
Ответить с цитированием

  #3  
Старый 08.05.2010, 23:49
crazyserega1994
Познающий
Регистрация: 26.12.2007
Сообщений: 34
Провел на форуме:
150392

Репутация: 8
По умолчанию

Есть еще 1 проблема, если в потоке делаю Post запрос, то все команды которые находятся после этого Post'a, не выполняются! В чем может быть проблема?
 
Ответить с цитированием

  #4  
Старый 08.05.2010, 23:52
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Скинь часть кода, в которой выполняешь POST запрос.
 
Ответить с цитированием

  #5  
Старый 09.05.2010, 00:11
crazyserega1994
Познающий
Регистрация: 26.12.2007
Сообщений: 34
Провел на форуме:
150392

Репутация: 8
По умолчанию

Код HTML:
procedure Thread.SendSMS;
var data:tstringlist;
    page:string;
    Stream:tmemorystream;
    param:TidMultiPartFormDataStream;
    i:integer;
    temp:string;
    hid:string;
    now:TDateTime;
    code1:string;
    number1:string;
    HTTP:tidhttp;
    HTTP2:tidhttp;
begin
if GetNumber = true then
begin
code1:=code;
number1:=number;
form1.sMemo2.Lines.Add(code1);
form1.sMemo2.Lines.Add(number1);
now:=time;
HTTP:=tidhttp.Create(nil);
HTTP2:=tidhttp.Create(nil);
HTTP2.AllowCookies:=true;
http2.HandleRedirects:=true;
param:=TidMultiPartFormDataStream.Create;
Stream:=tmemorystream.Create;
data:=tstringlist.Create;
HTTP.AllowCookies:=true;
http.HandleRedirects:=false;
try
page:=http.Get('http://www.mts.com.ua/ukr/sendsms.php');
delete(page,1,pos('captcha.php',page)+11);
page:=copy(page,1,pos('"',page)-1);
hid:=page;
now:=time;
form1.sMemo2.Lines.Add('['+Timetostr(now)+']: Получаем капчу...');
http.Get('http://www.mts.com.ua/back/modules/golden/captcha.php?'+page,stream);
now:=time;
form1.sMemo2.Lines.Add('['+Timetostr(now)+']: Капча полученна, отправляем капчу...');
stream.Position:=0;
stream.SaveToFile(ExtractFilePath( Application.ExeName )+hid+'.jpeg');
param.AddFormField('method','post');
param.AddFormField('key',form1.sEdit1.Text);
param.AddFile('file',ExtractFilePath( Application.ExeName )+hid+'.jpeg','image/jpeg');
page:=http2.Post('http://antigate.com/in.php',param);
delete(page,1,3);
for i:=1 to 100 do
begin
  sleep(1000);
  temp:=http2.Get('http://antigate.com/res.php?key='+form1.sEdit1.Text+'&action=get&id='+page);
  if pos('OK|',temp) > 0 then
  begin
    delete(temp,1,3);
    break;
  end;
  if pos('ERROR',temp) > 0 then begin
  now:=time;
  form1.sMemo2.Lines.Add('['+Timetostr(now)+']: Произошла ошибка на сервие AntiCaptcha: '+ temp);
  Exit;
  end;
end;
now:=time;
form1.sMemo2.Lines.Add('['+Timetostr(now)+']: Капча разгаданна, SMS отправленно!');
data.Add('script=/ukr/sendsms.php');
data.Add('sms_tag_id=3');
data.Add('network1=38'+code1);
data.Add('phone1='+number1);
data.Add('message='+form1.sMemo1.Text);
data.Add('lang=lat');
data.Add('captcha='+temp);
http.Post('http://www.mts.com.ua/back/modules/sms/db_sms.php',data);
form1.smemo2.Lines.Add('LOL');
finally
  data.Free;
  http.Free;
  stream.Free;
  param.Free;
  http2.Free;
  DeleteFile(ExtractFilePath( Application.ExeName )+hid+'.jpeg');
end;
end;
end;
После строчки http.Post('http://www.mts.com.ua/back/modules/sms/db_sms.php',data); уже ничего не работает, хотя пост запрос выполняется(смс приходит)
 
Ответить с цитированием

  #6  
Старый 09.05.2010, 15:35
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Все очень просто.
Когда ты делаешь последний запрос (на http://www.mts.com.ua/back/modules/sms/db_sms.php), сервак отвечает тебе кодом 302, благодаря чему Indy генерит исключение, и программа сразу же переходит к блоку finally.

Решения:
1) Попробуй заменить строчку
Код:
http.HandleRedirects:=false;
на
Код:
HTTP.HandleRedirects := True;
2) Если предыдущий вариант не поможет, то попробуй убрать блок
Код:
try
..
finally
..
end;
 
Ответить с цитированием

  #7  
Старый 09.05.2010, 16:39
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Цитата:
Если предыдущий вариант не поможет, то попробуй убрать блок
Это тоже не поможет, т.к. исключение не обрабатывается.
Надо обернуть запрос в try except end;
 
Ответить с цитированием

  #8  
Старый 09.05.2010, 18:04
crazyserega1994
Познающий
Регистрация: 26.12.2007
Сообщений: 34
Провел на форуме:
150392

Репутация: 8
По умолчанию

Цитата:
Сообщение от Chrome~  
Все очень просто.
Когда ты делаешь последний запрос (на http://www.mts.com.ua/back/modules/sms/db_sms.php), сервак отвечает тебе кодом 302, благодаря чему Indy генерит исключение, и программа сразу же переходит к блоку finally.

Решения:
1) Попробуй заменить строчку
Код:
http.HandleRedirects:=false;
на
Код:
HTTP.HandleRedirects := True;
2) Если предыдущий вариант не поможет, то попробуй убрать блок
Код:
try
..
finally
..
end;
Когда появилась ошибка, я начал эксперементировать с Handleredirects, и результат был нулевой, просто забыл поставить на true, но я решил эту проблему, обьявив 3 tidhttp, создал кукимененджер, и соедил кукименеджер с http и http3, пост отправляю с http3, и все работает, хотя и быдло код :3
 
Ответить с цитированием

  #9  
Старый 22.05.2010, 17:04
crazyserega1994
Познающий
Регистрация: 26.12.2007
Сообщений: 34
Провел на форуме:
150392

Репутация: 8
По умолчанию

Цитата:
Сообщение от TrueBit  
Utf8toAnsi
Не помогло
 
Ответить с цитированием

  #10  
Старый 22.05.2010, 17:34
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Так попробуй
var
stream : TStringStream; s : string;
begin
stream := TStringStream.Create('', TEncoding.Utf8);
IdHttp1.Get(URL, stream);
s := stream.DataString;
stream.Free;
end;
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не паблик FAQ по группам ВК «Adult Holding» Социальные сети 349 07.05.2010 01:41
localhost:8888 -PsychonauT- Чаты 10 22.01.2010 15:31
Indy 10 - проблема mailbrush С/С++, C#, Delphi, .NET, Asm 9 25.07.2009 16:56
Вопрос по логам An90 *nix системы 6 08.02.2009 18:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ