Delphi (Indy + CapMonster + Antigate=Error)

Agnostick

Новичок
Регистрация
02.10.2015
Сообщения
1
Благодарностей
0
Баллы
1
Привет всем. Уже неделю вожусь с проблемой. Есть программа, работающая с антигейтом, уже годами все работало как часы, но вот я решил подключить свою программу к CapMonster'у, и по какой-то причине он просто отказывается обрабатывать картинки. Он их вроде как принимает, потому что на первой демке кончился лимит в 1к бесплатных капч, но в логе вообще не отображает картинки. В ответ же приходит "ERROR"(GET запрос капчи нормально обрабатывается, а Post нет)

Возможно, проблема в кодировке, в CapMonster используется 1251, но я не знаю точно какая в Delphi, а точнее в MultiPartFormData. Избавился от проблемы, что idhttp отключает протокол 1.1 и включает 1.0. Но это не помогло. Пробовал подключать StringStream. Но видимо что-то делаю не так.

Прикрепляю два файла, в первом Raw Stream от программы на C++, в которой все работает. Второй от моей программы.

Вот примерный исходник, просто их уже вариантов 10-15 было:

Код:
MultiData:=Tidmultipartformdatastream.Create;
    MultiData.AddFile('file', 'captcha_mail.ru_1443552073360-759.jpg', 'image/jpeg');
    MultiData.AddFormField('method','post');
    MultiData.AddFormField('key', '593cdcc03cb415ab6ac571e68945ade5');
    MultiData.AddFormField('is_russian', IntToStr(0));
    MultiData.AddFormField('phrase', IntToStr(0));
    MultiData.AddFormField('regsense', IntToStr(1));
    MultiData.AddFormField('numeric', IntToStr(0));
    MultiData.AddFormField('min_len', IntToStr(0));
    MultiData.AddFormField('max_len', IntToStr(0));
    MultiData.AddFormField('soft_id','381');
    try
    ww:=true;
        while ww=true do
        begin
            try
            idHTTP3.Post('http://antigate.com/in.php',multidata);
              ss:=Copy(ss,4,maxint);
              ww:=False;
            except
            ww:=True;
            end;
        end;
    finally
    MultiData.Free;
    end;
    m:=true;
    while m=TRUE do
    begin
    sleep(5000);
    zz:=idHTTP3.Get('http://antigate.com/res.php?key=593cdcc03cb415ab6ac571e68945ade5&action=get&id='+ss);
       if zz[1]='O' then
        begin
        zz:=Copy(zz,4,Length(zz));
        m:=False;
        end;
    end;
 

Вложения

  • 10,5 КБ Просмотры: 608
  • 11 КБ Просмотры: 630

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)