Сообщение на форуме
22 января 2020 в 10:19:31
Имеется некий запрос, который получает код номенклатуры и его представление.
Далее:
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
МассивRoot = Новый Массив;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДанныеНоменклатуры = Новый Структура;
ДанныеНоменклатуры.Вставить("code_1c", ВыборкаДетальныеЗаписи.code1c);
ДанныеНоменклатуры.Вставить("name", ВыборкаДетальныеЗаписи.name);
МассивRoot.Добавить(ДанныеНоменклатуры);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", Истина);
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
ЗаписатьJSON(ЗаписьJSON, МассивRoot);
СтрокаJS = ЗаписьJSON.Закрыть();
ФайлОтвета = "C:UsersUserDocumentstemptest.txt";
АдресСервера = "185.167.5.549"; (тестовый адрес, в реале другой)
РесурсНаСервере = "/v3/nomenclatur/update?token=5вф4в5фыв5фыв5фы5авы6"; (некий тест для примера)
Если Объект.SLL Тогда
HTTPСоединение = Новый HTTPСоединение(АдресСервера, 443,,,,,Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено));
Иначе
HTTPСоединение = Новый HTTPСоединение(АдресСервера, 80);
КонецЕсли;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-type", "application/json");
запросPOST = Новый HTTPЗапрос(РесурсНаСервере, Заголовки);
запросPOST.УстановитьТелоИзСтроки("json=" + СтрокаJS);
ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета);
Если НЕ (ОтветHTTP.КодСостояния >= 200 И ОтветHTTP.КодСостояния < 300) Тогда
Сообщить("Выгрузка пакета не произведена: Код ответа сервера - "+ОтветHTTP.КодСостояния+", Ответ: "+ОтветHTTP.ПолучитьТелоКакСтроку());
Иначе
Сообщить("Успешно выгружен пакет");
КонецЕсли;
при выполнении получаем ошибку 422, а именно соединение проходит, но на сервер отправляется пустой файл.
в ответ приходит следующее:
{"json":["JSON u043du0435 u0434u043eu043bu0436u0435u043d u0431u044bu0442u044c u043fu0443u0441u0442u044bu043c"]}
в чем дело, может в параметрах каких? в postman передаю сформированный json все отлично проходит.