|
POST запрос. Помогите решить проблему. |
☑ |
0
Boudybuilder
22.09.14
✎
00:48
|
в ТЗ указано что надо отправить POST запрос на адрес: с заполненной переменной $_POST['xml_request'], в которой передается содержимое XML фaйла.
Тут два вопроса:
1) Где заполняется эта переменная
2) в каком виде должно быть содержимое хмл , строка?
Делаю я так:
Если можно исправте что не так
Попытка
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"utf-8");
WinHttp.Open("POST",Сервер,0);
WinHttp.Send("$_POST['xml_request']");
ТекстОтвета = WinHttp.ResponseText();
Сообщить("УСПЕХТ !
|
|"+ТекстОтвета);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
|
|
1
SiAl-chel
22.09.14
✎
01:50
|
(0) Какая версия 1С? Если 8-я, то лучше использовать родные объекты HHTСоединение и HTTPзапрос, а с вопросами по WinHTTP лучше обращаться на MSDN
|
|
2
Boudybuilder
22.09.14
✎
01:53
|
(1) 8.3
|
|
3
МастерВопросов
22.09.14
✎
04:46
|
+1 к родным методам 1С
Почитай в синтакс помошнике описание обьекта HTTPСоединение и его метод ОтправитьДляОбработки. Там довольно просто всё.
|
|
4
МастерВопросов
22.09.14
✎
04:54
|
+(3) вот пример:
ФайлОтправки = Новый Файл(ИмяВременногоФайла);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");
Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки);
имяВыходногоФайла = ПолучитьимяВременногоФайла("xml");
HTTP = Новый HTTPСоединение(НазваниеСервераБезHTTPиСлешев);
ОтветСервера = HTTP.ОтправитьДляОбработки(ИмяВременногоФайла, имяВыходногоФайла, Заголовки);
|
|
5
Нуфс-Нуфс
22.09.14
✎
08:23
|
СтруктураДляПередачи = Новый Структура;
СтруктураДляПередачи.Вставить("Пользователь", ПараметрыСеанса.ТекущийПользователь);
СтруктураДляПередачи.Вставить("ДанныеСтрокой", "Строковые данные");
ХранилищеДляПередачи = Новый ХранилищеЗначения(СтруктураДляПередачи, Новый СжатиеДанных(9));
ТекстФайла = Сериализовать(ХранилищеДляПередачи);
// передача файла
Соединение = Новый HTTPСоединение(Адрес, , Логин, Пароль);
Запрос = Новый HTTPЗапрос(путь");
Запрос.УстановитьТелоИзСтроки(ТекстФайла);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
|
|
6
Boudybuilder
25.09.14
✎
21:48
|
Если Сервер = ";
тогда так Новый HTTPСоединение(gw.site.ru, , Логин, Пароль);
куда девать порт 11443 и это куда new_orders.php ?
|
|
7
Boudybuilder
25.09.14
✎
22:44
|
(4) ОтправитьДляОбработки имеет только два параметра. а не 3
|
|
8
Boudybuilder
25.09.14
✎
22:48
|
(5) Запрос.УстановитьТелоИзСтроки(ТекстФайла);
Как мне получить текст хмл файла?
|
|
9
Boudybuilder
26.09.14
✎
01:00
|
Уже хоть ответ от сервера приходит...
<?xml version="1.0" encoding="UTF-8"?><response ErrorCode="ERR_XML_EMPTY" Msg="Значение переменной $_POST[xml_request] пустое" />
Но почему пустое ... не понятно
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший