procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser.Navigate('about :blank');
while WebBrowser.Document = nil do Application.ProcessMessages;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
v: Variant;
HTMLDocument: IHTMLDocument2;
begin
HTMLDocument := WebBrowser.DefaultInterface.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := Memo1.Text;
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
end;
Попытка отправить смс из программы
пытаюсь сделать прогу которая бы отправляла смс через вэб портал оператора билайн... на странице отправки есть простая форма + подтверждение через картинку (номер)... в своей программе реализовал автоматическую загрузку формы, оттуда вытаскиваю ссылку на картинку подтверждения, загружаю картинку (сохраняю на диск, потом в имедж), из полученных данных фомирую POST запрос .... и нифига! Приходит сообщение о том что неверно введен код подтверждение (с картинки). Смотрел что уходит в сеть когда отправляет запрос Опера и что отправляет мое приложение все практически идентично, но от оперы смс'ка уходит, а от меня нет :(
Народ можт кто знает про сабж чтонить.. может какие нибудь особенности при отправке таких запросов есть?
Вот ссылочка на форму отправки
http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms
Цитата:
...все практически идентично...
Так практически, или идентично?
Само тело запроса идентично (кроме кода подтверждения и номера с картинки).. немного отличается заголовок, но я думаю не в этом проблема.
Вот что отправляет опера:
POST http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms HTTP/1.0
User-Agent: Opera/9.01 (Windows NT 5.1; U; ru)
Host: beonline.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru,en;q=0.9
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms
Cookie: UserPhone=790629145xx; JSESSIONID=ayhH4VEnwezf
Cookie2: $Version=1
Proxy-Connection: close
Content-Length: 173
Content-Type: application/x-www-form-urlencoded
deferto=&adv_year=&send=send&confirm_key=N5YnxSdoI5&confirm_code=4730&destination_number_from=ordinary&phone=90629145xx&message=message+send&mlength=144&phone_answer_number=
А вот мой пост:
POST http://www.beonline.ru:80/portal/comm/send_sms/simple_send_sms.sms HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 37907
Proxy-Connection: keep-alive
Host: beonline.ru
Accept: text/html, */*
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Language: ru,en;q=0.9
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Cookie: JSESSIONID=a6BFgdnnIh9b
deferto=&adv_year=&send=send&confirm_key=mroNrU8PRR&confirm_code=3822&destination_number_from=ordinary&phone=90629145xx&message=message+send&mlength=144&phone_answer_number=
Попадая пальцем в небо, скажу, что обязательно надо отправлять поле Referer.
вот так теперь уходит:
POST http://www.beonline.ru:80/portal/comm/send_sms/simple_send_sms.sms HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 175
Proxy-Connection: keep-alive
Host: beonline.ru
Accept: text/html, */*
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Language: ru,en;q=0.9
Referer: http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms
User-Agent: Opera/9.01 (Windows NT 5.1; U; ru)
deferto=&adv_year=&send=send&confirm_key=Zr6MfQrcMR&confirm_code=4578&destination_number_from=ordinary&phone=9062914522&message=message+send&&mlength=144&phone_answer_number=
Попробуй отправлять один в один что и опера. Если будет работать, постепенно удаляй/меняй поля как тебе надо. В итоге узнаешь, что менять можно, что нельзя.
покопался еще .. осталось решить вот что:
делаю один запрос формы
s:=IdHTTP1.Get('http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms');
в событии получения кукиса смотрю что получаю... получаю почему то два раза (происходит два события)
JSESSIONID=aderqOEC8FPf; path=/; domain=www.beonline.ru
JSESSIONID=aPVHP0qpsea4; path=/; domain=www.beonline.ru
ну собственно первый который нужен для идентификации затирается вторым, он же уходит в сеть :)
P.S. Хотя странно что у них путь и домен одинаковые... :-\
idCookieManager (Indy misc) в событии OnNewCookie... по идее первый относится к номеру.
idCookieManager (Indy misc) в событии OnNewCookie... по идее первый относится к номеру.[/QUOTE]
Так не легче будет выводить саму форму и картинку в TWEBBROWSER в своём проекте, не загружая сам сайт БиЛайна
WebBrowser потащит за собой кучу графики, флеш и подобный мусор, я загружаю только html и отдельно картинку с подтверждением. Программу пишу для себя и друзей, а мы пользуемся GPRS интернетом поэтому лишний мусор грузить не хочется, но если не получится так можт и попробую с браузером, но это уж только на крайняк. Кстати если подскажеш как можно (если вообще можно) загрузить отдельно форму в webBrowser, то буду благодарен.
а тебе не легче будет просто установить программу для посылок sms'ок непосредственно из самой программы, так чтобы не париться?
Если ты имееш ввиду альтернативный готовый софт, то я не нашел ни одной для северо-западного региона. Если бы что было сам бы не писал.
SMS Express 1.3.7 - - - Не хочу рекламировать!
Отправка SMS в Москву, Питер и другие города, МТС - БИЛАЙН
Не пробовал?
спасибо за программу.. в принципе билайн и мтс работают, мегафон проверить пока не получается, симки нет. Но вообще думаю использовать порталы через которые эта программа шлет смс в своей проге :) все таки хочу доделать свое творение, чтобы можно было добавить еще местных операторов.
Всегда пожалуйста!
на самом деле самому приятно становится, когда перед тобой стоит задача и тебе её надо решить, и в крайних случаях можно спихнуть свой вопрос в форум!
Нашёл где скачать её?
С МТС'ом я правда поспешил, работает только билайн, но он мне собственно и нужен.
есть вроде различные смс гейты, так вот с некоторыми из них, по-моему, можно через сокеты общаться и есстесственно смски отсылать - мне даже примерчик на глаза попадался.
кстати я что-то не увидел, где код, который на картинке, передается - вроде там только название и все.
Цитата:
Кстати если подскажеш как можно (если вообще можно) загрузить отдельно форму в webBrowser, то буду благодарен
Код:
не легче отправлять через емаил? я на киевстар только так и оправляю..
насчет готового софта глянь вот это http://agent.mail.ru. там прога для отправления смс(пробовал - работает). работает с операторами билайн, мтс, мегафон и северо-западный регион там есть. даже для разработчиков протокол выложен и заголовочный файл(правда на си, но разобраться можно), на случай если кто-то что-то своё замутить хочет. там также файл с доступными регионами есть.