новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Импорт докуменов с веб ресурса

    • #1
    • 01.03.2021 23:01
    0
    Приветствую! Делаю импорт документов из json в БП. По запросу на получение документа по id документ успешно загружается со всеми нужными реквизитами. Через утилиту командной строки CURL тем же запросом получаю данный документ в формате xml. Это GET запрос. Требуется дать ответ на web ресурс о том, что документ успешно загружен, отправив его id. Делаю тот же запрос с функцией POST запроса ОтправитьДляОбработки(), но в этом случае возвращается КодСостояния = 400, что бы я не делал. Можно ли через команду Curl (или какую-нибудь другую команду) получить POST запрос в командной строке? В чём моя ошибка? Вот успешный GET запрос. Получаем ID документа. Потом: Соединение = Новый HTTPСоединение("1s.leon.ru:3000"); Запрос = Новый HTTPЗапрос("/export/" + ID + "?key=5ED7DF2A-0EED-40A8-9800-7E9008881A4B"); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда РезультатСтрокой = Результат.ПолучитьТелоКакСтроку(); КонецЕсли; А вот неуспешный POST запрос: Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type", "application/json"); Соединение = Новый HTTPСоединение("1s.leon.ru:3000"); ФайлРезультат = ПолучитьИмяВременногоФайла(); Запрос = Новый HTTPЗапрос("/export/" + ID + "?key=5ED7DF2A-0EED-40A8-9800-7E9008881A4B", Заголовки); Запрос.УстановитьТелоИзСтроки(Запрос, КодировкаТекста.UTF8); Результат = Соединение.ОтправитьДляОбработки(Запрос, ФайлРезультат); Результат.Заголовки.Вставить("Content-type", "application/json"); Если Результат.КодСостояния <> 200 Тогда Ответ = Соединение.ОтправитьДляОбработки(Запрос); Сообщить("Код результата: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); КонецЕсли; Буду очень благодарен за поддержку, я в 1С более 17 лет, а с этими вещами столкнулся впервые
    • #2
    • 02.03.2021 10:46
    0
    Используйте postman, в нем можно тестировать post - запросы. Еще есть обработка КонсольHTTPЗапросов прям из 1с можно все протестировать.
    • #3
    • 02.03.2021 14:59
    0
    Благодарю, справился, не то передавал в тело.
    Конечный результат POST запроса:
    Соединение = Новый HTTPСоединение("1s.leon.ru:3000");
    СтруктураID = Новый Структура("documentOuterId", СтруктураШапкиДокумента.Код);
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, СтруктураID);
    СтрокаДляОтвета = ЗаписьJSON.Закрыть();
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json");
    Запрос = Новый HTTPЗапрос("/export/" + СтруктураШапкиДокумента.Код + "?key=5ED7DF2A-0EED-40A8-9800-7E9008881A4B", Заголовки);
    Запрос.УстановитьТелоИзСтроки(СтрокаДляОтвета, КодировкаТекста.UTF8);
    Результат = Соединение.ОтправитьДляОбработки(Запрос);
    • #4
    • 03.03.2021 11:05
    0
    чо уж там ! выкладывайте обработку
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться