|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.09.2014, 10:03 | #1 |
Пользователь
Регистрация: 07.03.2009
Сообщений: 52
|
XLM - Post запрос.
Всем привет
Пишу программку для того что бы можно было отправлять смс через инт. Ну руководство требует. есть xlm <?xml version='1.0' encoding='UTF-8'?> <data> <login>LOGIN</login> <password>PASSWORD</password> <action>ACTION</action> <text>TEXT</text> <to number='NUMBER'></to> </data> надо создать программу на Delphi которая будет отправлять смс. Все делаеться через post запрос на адрес https://lcab.smsintel.ru/API/XML/send.php второй день сижу в интернете и ни чего толкого не нашел что то похожее есть но доле ко не айс. прошу вашей помощи, вот в чем: 1. Мне надо создавать файл или можно сразу же отправлять xml код через HTTP? 2. Как это реализовать можно? так как я ни чего не могу придумать. Если есть книги по этому то скинте ссылки. Спасибо за помощь. Последний раз редактировалось Dj_DeVaIs; 26.09.2014 в 10:04. Причина: 1111 |
26.09.2014, 11:22 | #2 |
Пользователь
Регистрация: 07.03.2009
Сообщений: 52
|
вот так не работает(((
var stringstream: TStringStream; begin stringstream:=TStringStream.Create( ''); try stringstream.WriteString('?xml version="1.0" encoding="UTF-8"?'); stringstream.WriteString('<data>'); stringstream.WriteString('<login>LO GIN</login>'); stringstream.WriteString('<password >PASSWORD</password>'); stringstream.WriteString('<action>A CTION</action>'); stringstream.WriteString('<text>TEX T</text>'); stringstream.WriteString('<to number='NUMBER'></to>'); stringstream.WriteString('</data>'); IdHTTP1.Request.ContentType:='appli cation/x-www-form-urlencoded'; IdHTTP1.Request.ContentLength:=stri ngstream.Size; stringstream.Position:=0; Memo1.Text:=IdHTTP1.Post('https://lcab.smsintel.ru/API/XML/send.php', stringstream); finally stringstream.Free; end; end; может кто нибудь знает как через php все это сделать? так как смс сервер предлагает: $xml = "<?xml version='1.0' encoding='UTF-8'?> <data> <login>LOGIN</login> <password>PASSWORD</password> <action>send</action> <text>TEXT</text> <to number='89010003333'></to> </data>"; $address = "https://lcab.smsintel.ru/API/XML/send.php"; $ch = curl_init($address); curl_setopt($ch, CURLOPT_URL, $address); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result = curl_exec($ch); echo $result; curl_close($ch); |
26.09.2014, 11:31 | #3 |
Заблокирован
Регистрация: 12.09.2014
Сообщений: 544
|
|
26.09.2014, 11:37 | #4 |
Пользователь
Регистрация: 07.03.2009
Сообщений: 52
|
|
26.09.2014, 11:44 | #5 |
Заблокирован
Регистрация: 12.09.2014
Сообщений: 544
|
Вообще знаю. Но:
1) В виду прошедшего урагана на юге России, не имею под рукой рабочей розетки для зарядки бука, а потому пишу с дроида. А он, увы, не желает запускать делфи. Смогу написать код только завтра. 2) Обещанного три года ждут. |
27.09.2014, 00:41 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Обычно в документации технически четко расписано как отправлять, как кодировать исходящее сообщение, куда его слать.
Обратитесь к документации - это все чем мы вам можем помочь. Написать за вас это: 1. Где-то там фриланс 2. Вы должны будете дать доступ к документации. Поскольку сайтец требует авторизации то работа с ним тоже идет через спец. API ключ доступа для взаимодействия с системой, иначе каждый желающий перестанет использовать яйца(ну или кого там) для платных СМС, и начнет использовать ПО через этот сайтец. |
28.09.2014, 10:53 | #7 |
Пользователь
Регистрация: 07.03.2009
Сообщений: 52
|
Ребята я не прошу вас писать код. я и сам могу это. мне нужен ваш совет.
вот по этим 2 вопросом. 1. Мне надо создавать файл или можно сразу же отправлять xml код через HTTP? 2. Как это реализовать можно? отправку не записывая в файл. В документации про delphi нет ни чего там только xml, php, c++ с этим направлениями программирования я не работал и не знаю как с ними работать. вот так можно через php: $xml = "<?xml version='1.0' encoding='UTF-8'?> <data> <login>LOGIN</login> <password>PASSWORD</password> <action>send</action> <text>TEXT</text> <to number='89010003333'></to> </data>"; $address = "https://lcab.smsintel.ru/API/XML/send.php"; $ch = curl_init($address); curl_setopt($ch, CURLOPT_URL, $address); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result = curl_exec($ch); echo $result; curl_close($ch); но как мне все это сделать через delphi? помогите плиз. направите в правильном направлении. |
28.09.2014, 11:49 | #8 | |
Заблокирован
Регистрация: 12.09.2014
Сообщений: 544
|
Цитата:
Читай выше. Дополню что инди может отправлять практически что угодно. В данном случае нужно отправить поток. Через String не советую, так как обработчик инди конвертирует строку функцией URLEncode, и убьёт структуру XML. |
|
28.09.2014, 17:05 | #9 |
Пользователь
Регистрация: 07.03.2009
Сообщений: 52
|
[QUOTE=indexx;1418009]Зачем создавать файл для текста? TMemoryStream (TStringStream и т.д.) в помощь
ни чего не понял как это сделать((( |
28.09.2014, 17:12 | #10 |
Пользователь
Регистрация: 07.03.2009
Сообщений: 52
|
про бывал вот таким методом:
var str:TStringList; PostData: TMemoryStream; begin SSLIOHandlerSocketOpenSSL:=TIdSSLIO HandlerSocketOpenSSL.Create(IdHTTP1 ); SSLIOHandlerSocketOpenSSL.SSLOption s.Method:=sslvSSLv3; IdHTTP1.IOHandler:=SSLIOHandlerSock etOpenSSL; str:= TStringList.Create; str.add('<?xml version="1.0" encoding="UTF-8"?><data><login></login><password></password><action>send</action><text>TEXT</text><to number="******"></to></data>'); Label1.Caption:=IdHttp1.Post('https ://lcab.smsintel.ru/API/XML/send.php',str); не работает. засовывал текст в memo, label, итд то же не работает. где я не прав. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
post запрос | topinaka | C/C++ Сетевое программирование | 0 | 13.06.2012 09:52 |
Post запрос | nakazanie | Работа с сетью в Delphi | 4 | 14.02.2011 11:52 |
POST запрос | timyr1997 | Работа с сетью в Delphi | 2 | 05.07.2010 20:54 |
POST запрос | DeDoK | Работа с сетью в Delphi | 6 | 12.07.2009 00:48 |
XLM ошибка ora-31001 | D-mon | БД в Delphi | 0 | 13.08.2008 15:09 |