Может кто нить будь дать простой пример работы с AC в билдере,
Тупо отправка капчи - Ожидание - Прием
Спасибо
Желательно пример с Id Http а не на сокетах
Компилятор желательно C++ Builder 6 или 9
M_script_
29.04.2010, 12:58
//---------------------------------------------------------------------------
String CheckCaptcha(String filename, String apikey, bool is_phrase, bool is_regsense, bool is_numeric, int min_len, int max_len)
{
String sFtype = "image/pjpeg";
String sTmpstr = "";
String sCaptcha_id = "";
TIdMultiPartFormDataStream *multi = new TIdMultiPartFormDataStream;
TIdHTTP *http = new TIdHTTP(0);
multi->AddFormField("method", "post");
multi->AddFormField("soft_id", "5");
multi->AddFormField("key", apikey);
multi->AddFile("file", filename, sFtype);
if(is_phrase)
multi->AddFormField("phrase", "1");
if(is_regsense)
multi->AddFormField("regsense", "1");
if(is_numeric)
multi->AddFormField("numeric", "1");
if(min_len)
multi->AddFormField("min_len", IntToStr(min_len));
if(max_len)
multi->AddFormField("max_len", IntToStr(max_len));
sTmpstr = http->Post("http://antigate.com/in.php", multi);
if(sTmpstr.Pos("ERROR_"))
{
delete multi;
delete http;
return sTmpstr;
}
if(sTmpstr.Pos("OK"))
{
sCaptcha_id = sTmpstr.SubString(sTmpstr.Pos("|") + 1, sTmpstr.Length() - sTmpstr.Pos("|"));
}
if(sCaptcha_id == "")
{
delete multi;
delete http;
return "ERROR: bad captcha id!";
}
for(int i = 0; i < 12; i++)
{
Sleep(5000);
sTmpstr = http->Get("http://antigate.com/res.php?key="+apikey+"&action=get&id="+sCaptcha_id);
if(sTmpstr.Pos("ERROR_"))
{
delete multi;
delete http;
return sTmpstr;
}
if(sTmpstr.Pos("OK|"))
{
delete multi;
delete http;
return sTmpstr.SubString(sTmpstr.Pos("|") + 1, sTmpstr.Length() - sTmpstr.Pos("|"));
}
}
delete multi;
delete http;
return "ERROR_TIMEOUT!";
}
//---------------------------------------------------------------------------
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot