доброго времени суток форумчане. решил заюзать отправку смс с сайта билайн (средствами си билдер и компонентом Indy) http://www.beeline.ru/sms/index.wbp но че то не получается. поснифал, куков там чето много, пытался отловить в заголовках ответа, но у меня там только два кукиса: WEBTRENDS_ID=2**.118.90.196-1024927952.30099463; ASP.NET_SessionId=s0ow3v554h3xuq45nagkco55; попробывал их заюзать так: IdHTTP1->Request->CustomHeaders->Add("Cookie: "+cok1+'\r\n'+cok2); но мессага так и не отправилась(код с капчи естесно добавлял в запрос). и немного не понимаю, в ссылке запроса есть параметры "&x=47&y=7" "y" это я так понял день недели ) хотя это просто догадка(завтра точно узнаю так это или нет), а вот что такое "x"? )) в общем надеюсь на помощь. вот. upd: "y" это не день недели =( блин.
X и Y это координаты места на кнопке, по которому произошло нажатие. (можно юзать константные значения, например 15 и 10) И никакие куки отправлять не нужно, достаточно всего лишь одного post запроса.
спасибо ребят огромное! но чет мне все время выдает "неверный код подтверждения" шлю одним постом, без куков, номера телов разные
да походу ) я тупо дергаю ее с http://www.beeline.ru/mamimg.aspx?width=120&height=30 как тогда сделать чтоб код отправлялся именно той капчи которую я вытягиваю? )) там есть параметр confirm_key= но он пустой...
Щас гляну у себя в исходниках ----------------------------------------- Нет с капчей все верно ты делаешь Send= Smstext=Твой текст Smstoprefix=префикс 905 там Smsto-номер без префикса dirtysmstext=Cнова твой текст confirm_key=пусто confirmcode=капча Вот самое главное
ёпта )) кароч просмотрел момент: TStringList*post=new TStringList; post->Add("send="); post->Add("smstext=testtest"); post->Add("smstoprefix=90*"); post->Add("smsto=3434***"); post->Add("dirtysmstext=testtest"); post->Add("translit="); post->Add("confirm_key="); post->Add("confirmcode="+Edit1->Text); //post->Add(Edit1->Text); post->Add("x=47"); post->Add("y=9"); там где закоментировано ошибка была ) в общем ура заработало! спасибо ребят! ) кста на остальных сайтах как с этим? мтс мегафон ) и кста капча у них жосткая ) нолик от буквы "O" хрен отличишь
мда ) глянул пост параметры на сайте мтс ) пздц )) маньяки сцук ) пытался их вставить в теги Code: мессага почему то становится пустой ))
Алгоритм отправки смс через сайты операторов практически везде совпадает 1) Биллайн на примере beeline.ua (beeline.ru аналогично) GET [http://mobile.beeline.ua/ru/sms/send.wbp получаем куки GET http://mobile.beeline.ua/ru/sms/mamimg1.aspx получаем капчу и распознаем POST http://mobile.beeline.ua/ru/sms/send.wbp send=&smstext= [СООБЩЕНИЕ_В_UTF8] &smstoprefix= [ПРЕФИКС] &smsto= [НОМЕР] &dirtysmstext= [СООБЩЕНИЕ_В_UTF8] &confirm_key=&confirmcode= [КАПЧА] &x= [РАНДОМ_X] &y= [РАНДОМ_Y] Ответы (в UTF8): помещено в очередь отправки Вы отправляете сообщения слишком часто Невозможно отправить сообщение Неверный код подтверждения 2) МТС GET http://www.mts.ru/live/smsxtra.aspx получаем куки, парсим ссылку на капчу и значения: LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew __VIEWSTATE __EVENTVALIDATION GET http://www.mts.ru/live/LanapCaptcha.aspx?get=image&c=... получаем капчу и распознаем POST http://www.mts.ru/live/smsxtra.aspx ctl00_ctl00_ctl00_SMSSendControl_RadScriptManager1_TSM=&__EVENTTARGET=&__EVENTARGUMENT=&LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew= [LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew (то, что спарсили)] &__VIEWSTATE= [__VIEWSTATE (то, что спарсили)] &__EVENTVALIDATION= [__EVENTVALIDATION (то, что спарсили)] &ctl00_ctl00_ctl00_SMSSendControl_RadFormDecorator1_ClientState=&ctl00%24ctl00%24ctl00%24SMSSendControl%24ddPrefix= [ПРЕФИКС] &ctl00_ctl00_ctl00_SMSSendControl_ddPrefix_ClientState=&ctl00%24ctl00%24ctl00%24SMSSendControl%24tbPhoneNumber= [НОМЕР] &ctl00%24ctl00%24ctl00%24SMSSendControl%24tbMessage= [СООБЩЕНИЕ_В_UTF8] &ctl00%24ctl00%24ctl00%24SMSSendControl%24tbCode= [КАПЧА] &ctl00_ctl00_ctl00_SMSSendControl_ctl01_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl02_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl03_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl04_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl06_ClientState=&ctl00%24ctl00%24ctl00%24SMSSendControl%24btnSend.x= [РАНДОМ_X] &ctl00%24ctl00%24ctl00%24SMSSendControl%24btnSend.y= [РАНДОМ_Y] Ответы: ctl00_ctl00_ctl00_SMSSendControl_lbSuccess - отправлено ctl00_ctl00_ctl00_SMSSendControl_lblPhoneError - неверный номер телефона получателя ctl00_ctl00_ctl00_SMSSendControl_lblCapchaError - неверный код подтверждения ctl00_ctl00_ctl00_SMSSendControl_lblError - превышен лимит сообщений с одного IP адреса
M_script за параметры мтс большое спасибо! с билайном справился. а вот кодированные до 14 с лишним килобайт параметры поста на сайте мтс меня вобще убили ) про капчу, по вашей ссылке выдает ошибку400. я как понял дергать нада с LanapCaptcha.aspx?get=image&c=live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew&t=23354fa02c9941718afe35ca59d21441&s=WoqvegT69NnTJO9L0oIAzNka0Ez3RjRNkZL%2bJxBuAVI%3d ? или нет? ) наверно глупость спросил. просто пока не тестил. туплю сижу. ))
Именно оттуда , параметры все спарсить можно http://www.mts.ru/live/LanapCaptcha.aspx?get=image&c=live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew&t=41fefaf47e1f4794bca44a909f6904c9&s=0lTm5zEB%2f%2bDMzGZFQx9MhEBAktidqXGbkZL%2bJxBuAVI%3d
блин ) взялся за мтс в общем. спарсил что нужно вроде. после поста кидает на страницу 500. может быть из-за того что в некоторых параметрах отправляю "/" а не %2F ? и неподскажите как уменьшить размер капчи? а то она такая здоровая чо та и еще когда выдираю параметр __VIEWSTATE у меня вконце почемуто всегда есть два знака "==" выдираю ровно до конца, до знака " пробывал обрезать эти "==" но все равно редиректит на страницу 500 хотел спросить у M_Script, этих параметров (которые вы запостили(для МТС)) точно достаточно? так уж неохото все их подставлять и так много их
good_man, я эти запросы не просто отловил снифером, а взял из своих программ, которые сейчас в рабочем состоянии. p.s.: небольшое напоминание - параметры хттп-запросов нужно отправлять в урленкоде.
Проблема с капчой Доброго времени суток. Занимаясь той же задачей, что рассматривалась в топике, столкнулся с проблемой: не могу выдрать капчу. Очевидно, что что-то делаю не так, но вот что - понять не могу. Вот кусок кода с обработкой: Code: IdHTTP1->Get("http://www.beeline.ru/sms/index.wbp"); // запрос String Cook1, Cook2, Cookie; TStringList *list = new TStringList; // Выдираем куки IdHTTP1->Response->RawHeaders->Extract("Set-cookie", list); // забрали нужное list->SaveToFile("cookie.txt"); // это просто для проверки Cookie = list->CommaText; // загнали в String // Cook1 - нечто вот такое: WEBTRENDS_ID=178.120.145.59-4059980496.30158924 Cook1 = Cookie.SubString( 2, Cookie.Pos(";") - 2 ); // Cook2: ASP.NET_SessionId=rcd3wi45zl3rke55lsire2au (для примера, частный случай) Cook2 = Cookie.SubString( Cookie.Pos("ASP"), Cookie.Pos("Http") - Cookie.Pos("ASP") - 10 ); // Собрали воедино Cookie = "Cookie: " + Cook1 + "; " + Cook2 + ";"; // Cookie = "Cookie: " + Cook1 + ";\r\n" + Cook2 + ";"; - перенос строки сути не меняет // Добавляем в заголовки IdHTTP1->Request->CustomHeaders->Add( Cookie ); // А вот тут и всё... IdHTTP1->Get("http://www.beeline.ru/mamimg.aspx?width=120&height=30"); Последний Get стабильно возвращает 404. Что-то я с ним намудрил, что одно время выдавалось 400 "Bad request", но это дела не меняет - оно всё равно не работало. Подскажите, пожалуйста, что делаю не так. Третий день голову ломаю