Имя: Пароль:
1C
1C 7.7
v7: отправка POST через инет (WinHttp.WinHttpRequest)
0 dk
 
06.09.11
09:25
Задача:
отправить post сообщение на сайт
Проблема:
В 7-ке нет объекта штатного
нашел решение Мож кому пригодится, как сделать POST (ну и GET) запрос с 1С на страничку
однако не выходит каменный цветок
----
С одной стороны вчера как-то получилось пару сообщений отправить
с другой, повторить результат больше не вышло
----
Вопросы
1. Может есть другие объекты для отправки post (есть 1с++ и formex)?
2. Может кто-нить накатать простую php страничку для проверки результата отправки (post или get и какие параметры были переданы)
1 ДенисЧ
 
06.09.11
09:26
"В 7-ке нет объекта штатного"

ОтправитьДляОбработки() мне приснился?
2 dk
 
06.09.11
09:27
это GET, а мне POST нужен (
3 ДенисЧ
 
06.09.11
09:27
Шо??? О_О
4 dk
 
06.09.11
09:28
или я хз какие там параметры передавать
5 dk
 
06.09.11
09:30
щас еще раз проверю, погодь
6 dk
 
06.09.11
09:36
не сработала
вот получитькакстроку - работает, но это get
---
поэтому нужно какое-то средство отладки, и вопрос 2 актуален
7 ДенисЧ
 
06.09.11
09:37
возьми любой хттп-сниффер и смотри, что отправляется
8 dk
 
06.09.11
09:39


Функция УстановитьКомпоненту()
   Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"v7plus.dll")=0 Тогда
       Сообщить("Не удалось обнаружить компоненту V7Plus.dll!");
       Возврат 0;
   КонецЕсли;  
   Попытка
       Соединение = СоздатьОбъект("Addin.V7HttpReader") ;
       Соединение.КоличествоПопытокАвторизации = 3;
   Исключение
       Сообщить("Не удалось создать объект Addin.V7HttpReader!
               |Обновите компоненту V7Plus.dll!");
       Сообщить("Не удалось установить соединение");
       Сообщить("Отправка SMS невозможна.");
       Возврат 0;
   КонецПопытки;  
   Возврат 1;
КонецФункции


   Ответ = "";
   УстановитьКомпоненту();
   с1 = ВыбСтрока1;
   с2 = ВыбСтрока2;
   Сообщить(с1);
   Сообщить(с2);
   
   Соединение.ОтправитьДляОбработки(с1, с2, 2, Ответ, 2);
       Сообщить(Ответ);

----
ВыбСтрока1 = "http://http.**********.com:8000/test/"
Выбстрока2 = "login=хххххх&password=**********&msisdn=722222222&shortcode=VODA&text=1111111&operation=send"
9 dk
 
06.09.11
09:40
да, про снифер тож думаю, но поглядел примеры, там не сильно читаемый вид вроде
10 ДенисЧ
 
06.09.11
09:40
вотля...

Ну тогда wget возьми :-)
11 dk
 
06.09.11
09:43
денвер поднять на машинке - пять минут делов
думаю php там совсем простая должна получиться - строк 5 .. 10 с echo
12 dk
 
06.09.11
09:43
тока в php я не силен (
13 dk
 
06.09.11
11:05
вверх 1
14 dk
 
06.09.11
11:19
нашел в чем дело было
закомментировал строку
WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251");
а зря
только с ней и заработало
15 oleg_km
 
06.09.11
13:46
Логично. Очень часто серверу не пофиг на некоторые параметры заголовка HTTP-запроса. У меня один сервер не обрабатывал запросы, если User-Agent не Mozila. Поэтому обычно я снифю, что шлет на сервер штатный клиент, потом по одному убираю заголовки из запроса, пока не обломится, оставшиеся заголовки критичные для сервера
16 Kreont
 
06.09.11
14:07
Страничка для тестирования на всякий случай:
http://hroch486.icpf.cas.cz/formpost.html