Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Баг Indy не получаеться отправить GET 
:(
    Опции темы
gashik
Дата 12.8.2012, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.6.2010

Репутация: нет
Всего: нет



Здравствуйте!
Помогите решить. 
В общем суть такова, в потоке инди вешаеться после get-запроса, причем в снифе я вижу:

Код

GET /страница.html HTTP/1.1
Connection: keep-alive
Content-Type: text/html
Date: Sat, 30 Dec 1899 03:00:00 +0300
Expires: Sat, 30 Dec 1899 03:00:00 +0300
Cookie: 
Host: сайт.ru
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
Accept-Encoding: deflate
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
If-Modified-Since: Sat, 30 Dec 1899 03:00:00 +0300

только это не просто заголовок!!!!!! Это POST!!!!!!
Вот код:


Код

procedure CapthaThread.Execute;
var
  i: integer;
  rs: TMemoryStream;
  CaptchaID: Integer;
  CaptchaRetPath, CaptchaKey, CaptchaText, AntiGateKey: String;
  S,url:String;

begin
  IdHTTP1:=TIdHTTP.Create(nil);
  IdHTTP1.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';
  IdHTTP1.Request.AcceptEncoding:='deflate';
  IdHTTP1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)';
  IdHTTP1.Request.AcceptLanguage := 'ru-RU,ru;q=0.9,en;q=0.8';
  IdHTTP1.Request.Connection := 'keep-alive';
  IdHTTP1.CookieManager:=IdCookieManager;
  IdHTTP1.AllowCookies:=True;
  IdHTTP1.HandleRedirects:=True;
  IdHTTP1.RedirectMaximum:=10;
  IdHTTP1.ProxyParams.ProxyServer:=FAddres;
  IdHTTP1.ProxyParams.ProxyPort:=FPort;
  IdHTTP1.Request.AcceptEncoding:='deflate';

  rs:=TMemoryStream.Create;
  url:='http://сайт.ru/getcaptcha';
  try
    S:=IdHTTP1.Get(url,rs);//ВОТ ТУТ ВИСНЕТ
  finally
  end;

  CaptchaText:='';
  while Length(CaptchaText)<>6 do
     CaptchaID:=RecognizeAG(rs,AntiGateKey,CaptchaText,6,6,1);

  url:='http://сайт.ru/check?rep='+trim(CaptchaText);
  try
    S:=IdHTTP1.Get(url);//ВОТ ТУТ ВИСНЕТ
  finally
    IdHTTP1.DisconnectSocket;
    FreeAndNil(IdHTTP1);
  end;
end;

function CapthaThread.RecognizeAG(
                     ImageData:       TMemoryStream;
                     AGKey:           String;
                     var CaptchaRes:  String;
                     MinLen:          integer=0;
                     MaxLen:          integer=0;
                     Numeric:         integer=0;
                     Phrase:          integer=0;
                     RegSense:        integer=0;
                     Calc:            integer=0;
                     Russian:         integer=0
                     ): Integer;
var Bound, ftype:  String;
    s, CaptchaID: String;
    i:             Integer;
    Image:         TMemoryStream;
    ICaptchaID: Integer;
    CaptchaRetPath,CaptchaText, AntiGateKey, CaptchaKey: String;
    formdata:TIdMultiPartFormDataStream;
begin
  IdHTTP2:=TIdHTTP.Create(nil);
  Result := 0;

  formdata:=TIdMultiPartFormDataStream.Create;
  ImageData.SaveToFile('image.jpg');

  formdata.AddFormField('key',AGKey);
  formdata.AddFormField('soft_id','248');
  formdata.AddFormField('min_len', '6');
  formdata.AddFormField('max_len', '6');
  formdata.AddFormField('numeric', '1');
  formdata.AddFormField('method', 'post');
  formData.AddFile('file','image.jpg','');

  CaptchaText:=IdHTTP2.Post('http://antigate.com/in.php',formData);
  if CaptchaText<>'' then
  begin
    s := CaptchaText;
    CaptchaRes := s;
    CaptchaID := '';
    if (Pos('ERROR_', s) < 1) then
    begin
      if (Pos('OK|', s) > 0) then CaptchaID := StringReplace(s, 'OK|', '', [rfReplaceAll]);
      if (CaptchaID <> '') then
      begin
        Result := StrToInt(CaptchaID);
        for i := 0 to 20 do
        begin
          Sleep(3000);
          s:=IdHTTP2.Get('http://antigate.com/res.php?key=' +
              AGKey + '&action=get&id=' + CaptchaID);
          if s<>'' then
          begin
            if (Pos('ERROR_', s) > 0) then
            begin
              CaptchaRes := s;
              break;
            end;
            if (Pos('OK|', s) > 0) then
            begin
              CaptchaRes := StringReplace(s, 'OK|', '', [rfReplaceAll]);
              break;
            end;
          end;
          CaptchaRes := 'ERROR_TIMEOUT';
        end;
      end else CaptchaRes := 'ERROR_BAD_CAPTCHA_ID';
    end;
  end else CaptchaRes := 'ERROR_CONNECT';
  FreeAndNil(formdata);
  IdHTTP2.DisconnectSocket;
  FreeAndNil(IdHTTP2);
end;


Так вот если не вызывать RecognizeAG, то отрабатывает нормально, а так,  полный запрос

Код

GET /check?rep=123456 HTTP/1.1
Connection: keep-alive
Content-Type: text/html
Date: Sat, 30 Dec 1899 03:00:00 +0300
Expires: Sat, 30 Dec 1899 03:00:00 +0300
Cookie: 
Host: сайт.ru
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
Accept-Encoding: deflate
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
If-Modified-Since: Sat, 30 Dec 1899 03:00:00 +0300

GET /страница.html HTTP/1.1
Connection: keep-alive
Content-Type: text/html
Date: Sat, 30 Dec 1899 03:00:00 +0300
Expires: Sat, 30 Dec 1899 03:00:00 +0300
Cookie: 
Host: сайт.ru
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
Accept-Encoding: deflate
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
If-Modified-Since: Sat, 30 Dec 1899 03:00:00 +0300



Ответ
Код


HTTP/1.1 302 Found
Set-Cookie: Cookie1=123456; domain=.сайт.ru; path=/; expires=Mon, 10-Sep-2012 22:45:14 GMT
Location: http://сайт.ru/страница.html
Transfer-Encoding: chunked

0



и дальше после отправки запроса ничего не происходит, дебагер стоит на строке     S:=IdHTTP1.Get(url); и ждет чего-то, не выдавая ошибок. 
PM MAIL   Вверх
Google
  Дата 28.2.2020, 12:18 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.