|
Синтаксис для HTTPЗапрос для 8.1 | ☑ | ||
---|---|---|---|---|
0
al_zzz
09.10.15
✎
14:59
|
Подскажите пожалуйста, как переписать процедуру для 8.1:
[code]// Процедура передачи данных в траспортный модуль ЕГАИС. // // Параметры: // ТранспортныйМодуль - СправочникСсылка.ТранспортныеМодулиЕГАИС - модуль, в который требуется передать данные. // АдресРесурса - Строка - адрес, по которому нужно передать данные // ТекстЗапроса - Строка - данные, передаваемые в УТМ // РезультатВыполненияЗапроса - Структура - возвращаемая структура, содержащая результат выполнения запроса // Процедура ПередачаДанныхВТранспортныйМодуль(ТранспортныйМодуль, АдресРесурса, ТекстЗапроса, РезультатВыполненияЗапроса = Неопределено) Экспорт РезультатВыполненияЗапроса = ИнтеграцияЕГАИСКлиентСервер.ПараметрыВыполненияЗапросаТранспортногоМодуляЕГАИС(ТранспортныйМодуль); ВремГраница = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", ""); ТелоЗапроса = Новый ТекстовыйДокумент(); ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница); ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""xml_file"""); ТелоЗапроса.ДобавитьСтроку("Content-Type: application/octet-stream" + Символы.ПС); ТелоЗапроса.ДобавитьСтроку(ТекстЗапроса); ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница); ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница + "--"); ТелоЗапросаСтрока = ТелоЗапроса.ПолучитьТекст(); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса); HTTPЗапрос.Заголовки["Content-Type"] = "multipart/form-data; boundary=" + ВремГраница; //--ZAV RSSIB09.10.15 HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрока, КодировкаТекста.UTF8, Ложь);//ИспользованиеByteOrderMark.НеИспользовать); Попытка Соединение = Новый HTTPСоединение(ТранспортныйМодуль.АдресСервера, ТранспортныйМодуль.ПортСервера); HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); РезультатВыполненияЗапроса.ОтветМодуляЕГАИС = HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8); Если HTTPОтвет.КодСостояния = 200 Тогда РезультатВыполненияЗапроса.Результат = Истина; ИначеЕсли HTTPОтвет.КодСостояния = 504 Тогда РезультатВыполненияЗапроса.Результат = Ложь; РезультатВыполненияЗапроса.ОписаниеОшибки = НСтр("ru = 'Нет связи с транспортным модулем.'"); Иначе РезультатВыполненияЗапроса.Результат = Ложь; ДополнительноеОписание = ""; ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(РезультатВыполненияЗапроса.ОтветМодуляЕГАИС); ЧтениеXML.ПерейтиКСодержимому(); Если ЧтениеXML.Имя = "A" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.Имя = "error" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ЧтениеXML.Прочитать(); ДополнительноеОписание = ЧтениеXML.Значение; КонецЕсли; КонецЦикла; КонецЕсли; ЧтениеXML.Закрыть(); РезультатВыполненияЗапроса.ОписаниеОшибки = НСтр("ru = 'При выполнении запроса транспортный модуль ЕГАИС вернул ошибку:'") + ?(НЕ ПустаяСтрока(ДополнительноеОписание), Символы.ПС + ДополнительноеОписание, "") КонецЕсли; Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'ЕГАИС.Отправка запроса'"), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); РезультатВыполненияЗапроса.Результат = Ложь; РезультатВыполненияЗапроса.ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; КонецПроцедуры // ПередачаДанныхВТранспортныйМодуль()[/code] Интересует момент использования объекта HTTPЗапрос. В 8.1 такого объекта ещё нет. Заранее спасибо! |
|||
1
jurassic
09.10.15
✎
15:00
|
сделать файл и отправить для обработки?
|
|||
2
al_zzz
09.10.15
✎
18:15
|
ага
|
|||
3
jurassic
09.10.15
✎
18:19
|
да не за что
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |