Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Вниз

Отправка SMS на Биллайн   Найти похожие ветки 

 
Viktop   (2006-09-02 08:02) [0]

Пытаюсь отправить SMS на Биллайн с помощью компонентов Indy.
Небольшое отступление. Для Firefox есть расширение xSMS. Оно позволяет отправлять SMS. Если отправлять на биллайн через их сайт, то надо вводить код, указанный на картинке. Если через xSMS (или их программу [официальная программа для отправки SMS от Биллайна]), то ничего вводить не надо. С помощью сниффера узнал заголовки отправляемого запроса.
http://www.beeonline.ru/servlet/send/sms/

POST /servlet/send/sms/ HTTP/1.1
Host: www.beeonline.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 87
Pragma: no-cache
Cache-Control: no-cache
number_sms=number_sms_send&termtype=G&x=5&y=4&prf=7909&phone=номер_телефона&mess age=Krosavcheg
HTTP/1.x 200 OK
Date: Sat, 02 Sep 2006 03:38:54 GMT
Server: Apache/2.0.49 (Linux/SuSE)
Cache-Control: private
Vary: Accept-Encoding
Content-Length: 25
Set-Cookie: JSESSIONID=axxl6HTg3QQg; path=/
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/plain;charset=windows-1251

В Delphi прописал такой код:
var
 aStream: TMemoryStream;
 Params: TStringStream;
 LongStr: string;
begin
 with IdHTTP1 do
 begin

   aStream := TMemoryStream.Create;
   Params := TStringStream.Create("");

   HandleRedirects := True;

   Host := "beonline.ru";
   Request.UserAgent := "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6)";
   Request.Accept := "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
   Request.AcceptLanguage := "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3";
   Request.AcceptEncoding := "gzip,deflate";
   Request.AcceptCharSet := "windows-1251,utf-8;q=0.7,*;q=0.7";
   Request.Connection := "keep-alive";
   Request.CacheControl:="no-cache";

   Request.ContentType := "application/x-www-form-urlencoded";
   Request.Connection := "Close";
   Request.Pragma := "no-cache";

   LongStr := "number_sms=number_sms_send&termtype=G&x=5&y=4&prf=7909&phone=Номер_телефона&mes sage=Krosavcheg";
   Params.WriteString((LongStr));
   IdHTTP.Post("http://www.beeonline.ru/servlet/send/sms/", Params, Stream);
   aStream.SaveToFile("C:\BOL.html");
   aStream.Free;
   Params.Free;
 end;
end;

В результате на диске C: создаётся файл BOL.html с текстом Ошибка при отправке сообщения.


 
Viktop   (2006-09-03 21:18) [1]

никто не знает?


 
Tisso   (2006-09-03 22:00) [2]

Я сейчас тоже занялся этим вопросом. Полагаю, без кода подтверждения не обойтись.
Странно, но честно сказать, даже при отправке формы со всеми кодами и со значениями скрытых полей, сообщение не отправляется.
И еще, скорее всего сервис http://www.beeonline.ru/servlet/send/sms/ не поможет. Я думаю BeLine прикрыли его, поэтому я пытаюсь сделать отправку через http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms.


 
Tisso   (2006-09-03 22:57) [3]

Интересно. Только что нашел программу BeeOnLine Express. она без запроса на подтверждение отправляет. Какой программой ты сниферил? Я хочу тоже попробовать и тогда буду думать.


 
Tisso   (2006-09-03 22:59) [4]

Кстати.. Еще идея такая.. Почему не отправляется сообщение? Я думаю, что при отправке создается сессия, а ты ее не создаешь..


 
Piter ©   (2006-09-04 00:03) [5]

Viktop   (02.09.06 8:02)

надо внимательнее проверять свой код. И проверять его минимум 10 раз, прежде чем на форум с вопросами лезть.

Ищи опечатку в коде.


 
Piter ©   (2006-09-04 00:08) [6]

хм... В одном месте опечатка точно есть, но дело вряд ли в ней.

А вот в другом месте... Возможно, это просто движок форума накосячил:

Viktop   (02.09.06 8:02)
&mes sage=Krosavcheg";


 
Viktop   (2006-09-05 06:04) [7]


> Интересно. Только что нашел программу BeeOnLine Express.
>  она без запроса на подтверждение отправляет. Какой программой
> ты сниферил? Я хочу тоже попробовать и тогда буду думать.
>

Вот и я о том же. Чем снифал я написал выше - расширение для браузера Firefox (Live HTTP Headers 0.12: http://livehttpheaders.mozdev.org/)
А вот для Windows надо ещё поискать нормальный снифер

> А вот в другом месте... Возможно, это просто движок форума
> накосячил:

Ага. В проекте всё нормально.
> И еще, скорее всего сервис http://www.beeonline.ru/servlet/send/sms/
> не поможет. Я думаю BeLine прикрыли его

Через расширение для браузера отправляется нормально

> Ищи опечатку в коде.

Что-то не могу найти. Видать квалификации мало =(


 
Tisso   (2006-09-05 11:59) [8]

Странно, а у меня через http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms не отправляется. Правда я до конца не уточнял, может я не все параметры передаю...
Попробую снифер найти и посмотреть что там отправляется. Или, Viktop, если не затруднит напиши, что передается на http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms.


 
Tisso   (2006-09-05 13:28) [9]

И про опечатку..
она здесь
IdHTTP.Post("http://www.beeonline.ru/servlet/send/sms/", Params, Stream);
Ты объявлял aStream, а пишешь Stream.. Странно, что у тебя еще какой-то результат записывался.
Про снифер.. Скачал я Fiddler.. только так и не разобрался пока как на нем перехватывать POST..


 
Tisso   (2006-09-05 14:30) [10]

Viktop, проснифери http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms пожалуйста, а то мой тип соединения не позволяет работать со сниферами. У меня RasPPPoE соединение.. Снифер не понимает почему-то.


 
Viktop   (2006-09-05 17:52) [11]

http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms

POST /portal/comm/send_sms/simple_send_sms.sms HTTP/1.1
Host: www.beonline.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms
Cookie: UserPhone=79090714251; JSESSIONID=avK1A6LLWgX6
Content-Type: application/x-www-form-urlencoded
Content-Length: 215
deferto=&adv_year=&send=send&confirm_key=_F4Ut%5E5aw7&confirm_code=9867&destination_number_from=ordinary&phone=9090714251&messa ge=%D2%E5%F1%F2%EE%E2%EE%E5+%F1%EE%EE%E1%F9%E5%ED%E8%E5&mlength=136&phone_answer_number=
HTTP/1.x 200 OK
Date: Tue, 05 Sep 2006 13:49:57 GMT
Server: Apache/2.0.49 (Linux/SuSE)
Vary: Accept-Encoding
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: no-cache
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251
----------------------------------------------------------

SMS содержит текст: Тестовое сообщение


> Ты объявлял aStream, а пишешь Stream

Я думаю, что это не принципиально, т.к. SMS не доходят...


 
Tisso   (2006-09-05 20:41) [12]

Это ты зря.. Очень даже доходят.. И твоим способом тоже доходят.. Попробуй подключить компонент IdCookieManager к IhHTTP.. Там я думаю ты поймешь как подключить, также как и ImagesList поключается. Если не поможет, то пиши..


 
Viktop   (2006-09-05 21:01) [13]


> Попробуй подключить компонент IdCookieManager к IhHTTP..
>  

Хм. Завтра вечером гляну. НО в каком-то проекте я точно подключал CookieManager...


 
Viktop   (2006-09-05 21:03) [14]

Вспомнил. Это я для регистрации на форуме хотел прогу написать. Тогда и подключал. Если не ошибаюсь, то там просто надо его подключить и разрешить куки (разрешены по умолчанию)

> И твоим способом тоже доходят

А твой какой? Число с картинки вводить?


 
Viktop   (2006-09-05 21:14) [15]

to Tisso
Напиши свой код, если не трудно ;)


 
Tisso   (2006-09-05 21:41) [16]

Проблема, с которой я сталкнулся, это что при отправке в ответ получаю "Внимание!!! Неверно указан код подтверждения отправки.". Не знаю как это решить пока.. В чем именно проблема я знаю.
Я сначала загружаю исходник страницы, из него достаю confirm_key.. и потом в TImage загружаю картинку с кодом, который необходимо ввести.. Но я не знаю как правльно произвести загрузку.. Потому что к моменту когда я загружаю эту картинку я получаю совершенно другую..
Т.е. мне необходимо реализовать рагрузку как в это сделано в броузерах.. Т.к., как я думаю, раз загрузка идет в разное время, значит и в ответ я буду получать картинки разных сессий..

Буду рад если, кто поможет разрешить данную задачу!


 
Tisso   (2006-09-05 21:49) [17]

Ты про отредактированный твой? Во он
procedure TfrmMain.Button2Click(Sender: TObject);
var
 data: TStringStream;
 DataStream: TMemoryStream;
 DataString: String;
begin
 with IdHTTP do
   begin
     DataStream:= TMemoryStream.Create;
     data:= TStringStream.Create("");

     Host:= "beonline.ru";
     Request.UserAgent:= "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6)";
     Request.Accept:= "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
     Request.AcceptLanguage:= "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3";
     Request.AcceptEncoding:= "gzip,deflate";
     Request.AcceptCharSet:= "windows-1251,utf-8;q=0.7,*;q=0.7";
     Request.Connection:= "keep-alive";
     Request.CacheControl:="no-cache";

     Request.ContentType:= "application/x-www-form-urlencoded";
     Request.Connection:= "Close";
     Request.Pragma:= "no-cache";

     DataString:= "number_sms=number_sms_send&termtype=G&x=5&y=4&prf=7909&phone=!!ТЕЛЕФОН!!&messag e=" + txtMessage.Text; //Обрати внимания без префикса надо писать.. Для префикса используй prf.. В данном случае он равен 7909.
     data.WriteString(DataString);
     IdHTTP.Post("http://www.beeonline.ru/servlet/send/sms/", data, DataStream);
     DataStream.SaveToFile("BOL2.html");
     DataStream.Free;
     data.Free;
 end;

 txtMessagesList.Lines.AddStrings(txtMessage.Lines);
 txtMessage.Text:= "";
end;


 
Tisso   (2006-09-05 21:51) [18]

Форум исказил немного код, так что будь внимателен.. Могут быть лишние пробелы в переменных или значениях.. В DataString точено есть..


 
Viktop   (2006-09-06 05:57) [19]

Блин, понял в чём была ошибка. У меня на форме несколько компонентов IdHTTP.
Проблема была в строчке IdHTTP.Post("http://www.beeonline.ru/servlet/send/sms/", Params, Stream) Надо было написать IdHTTP1
8)


 
Viktop   (2006-09-06 05:58) [20]


> Проблема, с которой я сталкнулся, это что при отправке в
> ответ получаю "Внимание!!! Неверно указан код подтверждения
> отправки.". Не знаю как это решить пока.. В чем именно проблема
> я знаю.

А если мой код рабочий, то зачем пытаться подгрузить картинку?


 
Tisso   (2006-09-06 08:46) [21]

Чтобы отслеживать статус доставки, чтобы отправлять отложенные сообщения. Много всего.. Но самое главное это статус доставки..


 
Viktop   (2006-09-06 17:25) [22]

to Tisso
Мне пока не горит такой функционал, но если разберёшься, то черкани на vic87 на mail.ru или в аську 6155601. Буду премного благодарен ;)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.062 c
2-1157301812
Konstantin555
2006-09-03 20:43
2006.09.24
Как в ходе программы задать параметр CanResize формы?


2-1157365735
Calibr
2006-09-04 14:28
2006.09.24
Zoom?


3-1153126192
nkolya
2006-07-17 12:49
2006.09.24
Синхронизация двух БД


15-1157028811
Мимо проходил
2006-08-31 16:53
2006.09.24
Про Ветхий Завет


2-1157282412
Gens
2006-09-03 15:20
2006.09.24
Помогите с реализацией алгоритма





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский