0
murr_2012
05.04.21
✎
12:37
|
Отправляю из 1с пухлый json через post запрос на nodejs-сервер (на этой же машине Ubuntu в виртуалке).
1с 8.3.18.1334 (пришлось переходить на BAS, решил ставить последнее из найденного в варезниках, времени экспериментировать не было, сейчас чувствую, что сглупил)
На прежней версии 3.8.10.2528(?) работало всё как часики.
Попытка
Соединение = Новый HTTPСоединение(АдресСервера, 8002, "mlApp1C", "mlApp1C");
Исключение
ЗаписьЖурналаРегистрации("Ошибка соединения с сервером бэкенда маршрутов ", УровеньЖурналаРегистрации.Ошибка);
Возврат;
КонецПопытки;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json; charset=utf-8;");
ЗапросХХТП = Новый HTTPЗапрос("?action=routelist_exported", Заголовки);
ПолныйОтвет = Новый Структура ("success, message, data, operation", Истина, "", СтруктураОтвета, "export_routelists");
Ответ = Новый ЗаписьJSON();
Ответ.УстановитьСтроку();
ЗаписатьJSON(Ответ, ПолныйОтвет); // сериализует ОтветМассив в формат JSON
ЗапросХХТП.УстановитьТелоИзСтроки(Ответ.Закрыть(), КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Попытка
Результат = Соединение.ОтправитьДляОбработки(ЗапросХХТП);
Исключение
ЗаписьЖурналаРегистрации("Ошибка отправки МЛ серверу бэкенда маршрутов ", УровеньЖурналаРегистрации.Ошибка);
Возврат;
КонецПопытки;
Все почти хорошо, за исключением того, что на ноду приходят битые символы типа
"УГХТ ��ОВ"
��аг. "Аптека"
Каб 52��
Это происходит не всегда и не везде. Делаю повторную отправку данных - приходит в нормальном виде. Ну возможно на третий раз.
Бесит. Что и где можно покрутить?
|
|
5
murr_2012
06.04.21
✎
18:10
|
(4) Неа. Есть смысл? Там какой-то другой механизм сериализации?
Есть подозрение, что символы бьются где-то еще до отсылки. Может на этапе ЗаписатьJSON(Ответ, ПолныйОтвет);
Хрен поймаешь их появление.
WinHttp.WinHttpRequest вчера вроде все отослал красиво, но сегодня увидел несколько строк в БД битых.
То ли я их проглядел тогда, то ли проблема осталась.
|
|