Опять метод POST

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Опять метод POST

Сообщение djdrum » 21.01.2008 (Пн) 1:32

Кто знает помогите - никак не могу отправить данные методом Post, на форме есть текстовые поля, нужно чтобы значения этих полей отправлялись на сервер - пишу программу для отправки смс. Ниже исходник HTML форма, нужно сделать тоже самое но в vb форме - что то типа проги Coyote


<form name="form" action="http://217.118.84.204/servlet/send/sms/" method="post" target="smsFrame">
<input type="hidden" value="number_sms_send" name="number_sms">
<input type="hidden" value="G" name="termtype">
<input type="checkbox" value="1" name="translit"> Выключить Транслит

<input type="hidden" value="4" name="y">
<input type="hidden" value="5" name="x">
<tr valign="top">
<td colspan="5"><h4>Бесплатная отправка смс sms сообщений по Казахстану:</h4></td>
</tr>
<tr>
<td colspan="5"><iframe name="smsFrame" border="0" frameborder="0" height="30" scrolling="no" width="100%"></iframe></td>
</tr>

<tr valign="top">
<td width="155" nowrap>Выберите оператора:</td>
<td><b class="Red">*</b></td>
<td><select name="prf" class="reg">
<option value="">Выберите</option>
<option value="7705" selected> 705 - Beeline (Казахстан) </option>

<option value="7777"> 777 - K-Mobile (Казахстан) </option>
<option value="7095"> 095 - Beeline Damps (Россия) </option>
<option value="7901"> 901 - Beeline Damps (Россия) </option>
<option value="7903"> 903 - Beeline GSM (Россия) </option>
<option value="7905"> 905 - Beeline GSM (Россия) </option>

<option value="7906"> 906 - Beeline GSM (Россия) </option>
<option value="7909"> 909 - Beeline GSM (Россия) </option>
<option value="7960"> 960 - Beeline GSM (Россия) </option>
<option value="7961"> 961 - Beeline GSM (Россия) </option>
</td>

<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr valign="top">
<td width="155">Номер телефона:</td>
<td><b class="Red">*</b></td>
<td><input type="text" name="phone" maxlength="7" class="reg"></td>
<td>&nbsp;</td>

<td>&nbsp;</td>
</tr>
<tr valign="top">
<td nowrap>Текст сообщения:</td>
<td><b class="Red">*</b></td>
<td><textarea name="message" class="reg" style="height:160px; overflow-y:auto;"></textarea></td>
<td>&nbsp;</td>

<td>&nbsp;</td>
</tr>
</table>
<br>
<table width="90%" cellpadding="0" cellspacing="7" border="0" align="center" class="cmp">
<tr valign="top">
<td><img src="http://images.works.kz/attantion_16x16.gif" alt="Обратите внимание!"></td><td><b>Обратите внимание!</b><br>Не забудьте подписаться, в противном случае получатель не узнает автора смс.<br>Получатель не сможет ответить на Ваш смс sms.</td>
</tr>

</table>
<br>
<table width="90%" cellpadding="0" cellspacing="7" border="0" align="center" style="background:#DBDBE8">
<tr valign="top">
<td colspan="5" align="left"><input type="submit" name="submit" value=" Отправить "> &nbsp; <input type="reset" value=" Очистить форму "></td>
</tr>
</form>

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Опять метод POST

Сообщение BION » 21.01.2008 (Пн) 10:36

Хотябы так
Код: Выделить всё
dim http_req as New WinHttpRequest
dim host$, query$

host = "http://217.118.84.204/servlet/send/sms/"
query = "phone=9171234567&message=blablabla&......" ' и далее посписку ключевых элементов формы

http_req.Open "POST", host
http_req.Send query


Но вот еще вопрос, как Вы будите программно распознавать контрольную строку на картинке? :)
Хотя
Код: Выделить всё
src="/servlet/send/confirm_code/V1jP1l1R6I.gif"
=> пользователь и сам может ввести...
Еси не в курсе как скачать img, то вот:
Код: Выделить всё
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

lngRetVal = URLDownloadToFile(0, url, LocalFilename, 0, 0)

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.01.2008 (Пн) 11:16

"Хотя бы так" мало. POST должен что-то отправлять.

djdrum
Зацени это.
Лучший способ понять что-то самому — объяснить это другому.

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 21.01.2008 (Пн) 11:19

Antonariy писал(а):"Хотя бы так" мало. POST должен что-то отправлять.

djdrum
Зацени это.


хе, а эт чего
Код: Выделить всё
query = "phone=9171234567&message=blablabla&......"

кстати говоря описанная мною выше "конструкция" прекрасно выполняет свои функции. Не больше и не меньше.
А тот класс о котором ты упомянул - хорош и универсален, спасибо ALX_2002'у, часто им пользуюсь(в смысле классом:)).

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 21.01.2008 (Пн) 11:28

Antonariy
а тот класс универсален, в смысле, что может работать
как через XmlHttp так и через WinHttpRequest?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.01.2008 (Пн) 12:11

BION
хе, а эт чего
А эт параметры адресной строки, которые, кстати, должны быть в адресной строке, а не теле запроса.
кстати говоря описанная мною выше "конструкция" прекрасно выполняет свои функции
Твоя контрукция фактически выполняет GET, а не POST.

kibernetics
XmlHttp и WinHttpRequest - одно и тоже, только названия разные.
Лучший способ понять что-то самому — объяснить это другому.

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 21.01.2008 (Пн) 12:24

Antonariy писал(а):BION
хе, а эт чего
А эт параметры адресной строки, которые, кстати, должны быть в адресной строке, а не теле запроса.
кстати говоря описанная мною выше "конструкция" прекрасно выполняет свои функции
Твоя контрукция фактически выполняет GET, а не POST.


Ан нет, практика показывает что "POST" на своем месте и параметры запроса тоже там где им и должно находиться. Тут уж с практикой не поспоришь, да и с теорией не расходится. Читайте внимательней документацию :)
Тут еще нужно упомянуть про setRequestHeader, но это зависит от случая.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.01.2008 (Пн) 13:35

XmlHttp и WinHttpRequest - одно и тоже, только названия разные.

Нет
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.01.2008 (Пн) 15:07

Хакер писал(а):
XmlHttp и WinHttpRequest - одно и тоже, только названия разные.

Нет
Действительно, перепутал с каким-то похожим по названию объектом.
Лучший способ понять что-то самому — объяснить это другому.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 21.01.2008 (Пн) 18:24

2 Antonariy: Может быть XmlHttpRequest ? :) Он в InternetExplroer 7 интегрирован ( если я не ошибаюсь )

Наваял я пример отправки SMS.

Код сырой конечно, но зато реализована загрузка картинки сразу в Picture через WIA :)

Обработку ошибок доделывать не стал - уж слишком лень. Всё равно потом на сайте билайна что нибудь поменяют и код станет бесполезным )))
Вложения
SMS.zip
(3.26 Кб) Скачиваний: 87

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.01.2008 (Пн) 23:01

ALX_2002 писал(а):2 Antonariy: Может быть XmlHttpRequest ? :) Он в InternetExplroer 7 интегрирован ( если я не ошибаюсь )
Точно. И не ошибаешься :)
Лучший способ понять что-то самому — объяснить это другому.

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Re: Опять метод POST

Сообщение djdrum » 22.01.2008 (Вт) 1:37

спасибо, попробую отпишусь

BION писал(а):Но вот еще вопрос, как Вы будите программно распознавать контрольную строку на картинке? :)


а ее не надо распознавать, эта форма работает без ввода цифр, только вот я еще не догнал как отследить статус сообщения.

Есть поля которые я не понимаю - например что значит
x=5
y=4
termtype=G

если кто знает объясните

и говорят еще есть поля которых нет в этой форме, я так думаю что можно убрать и БОЛ в начале сообщения и лимит на отправку смс с одного IP адреса

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Опять метод POST

Сообщение ALX_2002 » 22.01.2008 (Вт) 11:30

Ага. ЩАЗЗЗ ))) Бесплатный сыр бывает только где ? Прально - В МЫШЕЛОВКЕ )))

Было бы всё так просто спармерством занимались бы миллионы. :lol: ( хотя и так занимаются... некоторые :evil: )

Ты представляешь себе общий принцип работы такой службы ?
1) Ты грузишь http://www.beonline.ru/portal/comm/send ... nd_sms.sms

2) На сервере запускается серверный скрипт, который генерит цифробуквенный код типа "a78bc" . Создаёт уникальный ID для этого кода и кладёт в базу.

[ID ][Код ]
[213421][a78bc]


запускает COM компонент генерации картинок с текстом и передаёт ему этот код. Генератор картинок рисует эту картинку с разным спецэффектами ( смазывание / затемнение, поворот букв ). Дальше картинка либо возвращается потоком через серверный скрипт, либо кладётся на диск и возвращается как файл в <IMG src="">

3) Серверный скрипт возвращает тебе страничку с картинкой и невидимом полем с тем самым уникальным ID.

4) Ты вбиваешь код с картинки и сабмитишт форму на сервак.

5) Сервак получает от тебя уникальный ID и введённый тобой код.

6) Пробегает по базе и сравнивает есть ли такой ID и совпадает ли с ним введённое тобой значение.

7) Если совпало - значит всё норм, ты не бот. Не совпало - тебя шлют на хрен и говорят, что ты дятл. :)

Естессенно это на случай если система грамотно сделана. Но бывает, что либо картинки не генерятся случайным образом, а уже хранятся на диске и подставляются произвольно. Либо уникальный ID является шифрованным значением того, что подставлено в сгенерированную картинку. Разные уязвимости бывают.

Но уверен, что сайт билайна не станет такую лажу у себя делать :)

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 22.01.2008 (Вт) 13:24

ну кто тебе мешает - возьми попробуй сохрани код в HTML формате и отправь смску - никто у тебя не спросит никаких картинок с цифрами

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 22.01.2008 (Вт) 15:22

ALX_2002
хе хе, а ведь djdrum прав, шлется, и без картинок. Чет пчала совсем сдает в последнее время :)

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 22.01.2008 (Вт) 15:34

:shock: Челы, а вы не заметили, что после успешной отправки этот код уже не действует ? )))) :lol: :D :lol:

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 22.01.2008 (Вт) 22:39

ALX_2002 писал(а)::shock: Челы, а вы не заметили, что после успешной отправки этот код уже не действует ? )))) :lol: :D :lol:


Гы неа, я 5 смсок подряд отправил и все пучком :)

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 23.01.2008 (Ср) 0:57

норм все, сделал через XMLHTTP, теперь будем пытаться сделать отчет о доставке

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 23.01.2008 (Ср) 1:51

djdrum писал(а):норм все, сделал через XMLHTTP, теперь будем пытаться сделать отчет о доставке


В смысле, а разве отчет не на мобилу приходит?
Еси не секрет, что ваяешь?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 23.01.2008 (Ср) 11:25

Вперёд ! Успехов ))) :lol:

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 23.01.2008 (Ср) 20:07

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

Shasha
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 08.11.2005 (Вт) 15:09

Сообщение Shasha » 23.01.2008 (Ср) 20:58

ALX_2002
у меня на твою софтину пишет ХЗ хто такой вектор, шо делать?
С Уважением,
Shasha

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 23.01.2008 (Ср) 21:57

Shasha писал(а):ALX_2002
у меня на твою софтину пишет ХЗ хто такой вектор, шо делать?

Поставить библиотеку WIA :)

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 24.01.2008 (Чт) 0:54

короче теперь не могу добиться от сервака возвращения ID операции, блин

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 24.01.2008 (Чт) 1:23

почему то в xmlhttp.responsebody возвращает Я идиот! Убейте меня, кто-нибудь!‡Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!?

мне кажется что это и есть ID сообщения

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 24.01.2008 (Чт) 12:33

все что сервер возвращает это

200
OK
Ваше сообщение отправлено
Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!??
4


и


Date: Wed, 23 Jan 2008 22:51:09 GMT
Server: Apache/2.0.49 (Linux/SuSE)
Vary: Accept-Encoding
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 24.01.2008 (Чт) 12:41

djdrum
Попробуй что-то типа этого :
Код: Выделить всё
request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"


А как все таки ты собираешься получить отчет о доставке СМС с вэб сервера?
Если это даже и ID (что им не является), то не факт, что при отсылке его ты получишь исчерпывающий ответ.
200 там и ОК это ответ хттп сервера на твой ПОСТ и все.
Отчеты о доставке принимаются при работе с GSM модемом и в формате PDU. Вот эта тема действительно интересна... А этот пчелиный сервис - всего лишь бесплатный гаджет, который нельзярассматривать как сурьезный сервис рассылки. Но для простенького сайтика пойдеть.
Последний раз редактировалось BION 24.01.2008 (Чт) 13:42, всего редактировалось 3 раз(а).

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 24.01.2008 (Чт) 12:42

Ну тк выгрузи в HTMLDocument данные и дальше работай с ними как хочешь :)
Код: Выделить всё
Dim HTMLDocument as new MSHTML.HTMLDocument

HTMLDocument.open
HTMLDocument.write XMLHTTP.ResponseText
HTMLDocument.close

MsgBox HTMLDocument.body.outerhtml

djdrum
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.01.2008 (Чт) 1:36

Сообщение djdrum » 24.01.2008 (Чт) 12:58

я вот посмотрел логи Netmon'a - почему то Coyot'у сервак возвращает данные в формате text/html, а мне text/plain


вот как раз в html странице принятой и содержится ID операции, с которым делается запрос статуса



если интересно могу выложить логи

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 24.01.2008 (Чт) 13:00

djdrum
Давай

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: The trick и гости: 27

    TopList  
cron