|   |   | 
| 
 | POST запрос. Помогите решить проблему. | ☑ | ||
|---|---|---|---|---|
| 0
    
        Boudybuilder 22.09.14✎ 00:48 | 
        в ТЗ указано что надо отправить POST запрос на адрес: http://сервер/new_orders.php с заполненной переменной $_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 http://social.msdn.microsoft.com/Forums/ru-RU/home     | |||
| 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"
 тогда так Новый 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] пустое" /> Но почему пустое ... не понятно | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |