Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проблема с отправкой на сайт xml файла Через HTTP соединение POST запросом

Проблема с отправкой на сайт xml файла Через  HTTP соединение POST запросом
Я
   bagu_muslim
 
25.04.21 - 07:22
HTML пытаюсь отправить файл и вылетает следующая ошибка ошибка  " {"detail":"JSON parse error - Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)"}" код ошибки 400 Код приведен ниже.

        SSL=Новый ЗащищенноеСоединениеOpenSSL;
    Соединение = Новый HTTPСоединение(Объект.Адрес,,,,,,SSL);
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("Content-Type", "application/json;charset=utf-8");// пробовал менять контент тайп там еще гуще ошибки вылетают
    ЗаголовокHTTP.Вставить("Authorization","Bearer   "+Токен);
    Структура=ПолучитьСтруктуруДляXML();
    хмл=СформироватьXML(Структура);
    HTTPЗапрос = Новый HTTPЗапрос("/en/api/v1/shops/update-products-*****/",ЗаголовокHTTP);
    HTTPЗапрос.УстановитьИмяФайлаТела(хмл);
    HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
    ОтветВВидеСтроки = HTTPОтвет.ПолучитьТелоКакСтроку();
    Сообщить(HTTPОтвет.КодСостояния);
    Сообщить(ОтветВВидеСтроки);
   ДенисЧ
 
1 - 25.04.21 - 07:25
Не раскрыта тема функции СформироватьXML()
Она что возвращает?
   bagu_muslim
 
2 - 25.04.21 - 07:31
(1) путь к файлу
   hhhh
 
3 - 25.04.21 - 07:37
(2) она вам насекает, что файл не utf-8
   bagu_muslim
 
4 - 25.04.21 - 07:48
(3) В параметрах записи хмл прописан UTF 8
   Вафель
 
5 - 25.04.21 - 07:59
Так даже в тексте ошибки указано что БОМ виноват
   bagu_muslim
 
6 - 25.04.21 - 08:08
(5) Можно по подробнее?  как исправить?  ОтправитьДляОбработки в этой функции нету параметра BOM, знаю что в СтрокуКакТело есть пааметр обрабатывать BOM
   hhhh
 
7 - 25.04.21 - 08:11
(4) ну и где тут эта записьXML ? Вы вообще какой-то другой кусок программы выложили, в котором ничего не увидишь.
   bagu_muslim
 
8 - 25.04.21 - 08:13
(7) Функция СформироватьXML(хмл)
    
    КаталогXML = Строка("E:\XML\Файл.xml");
    ЗаписьXML = Новый ЗаписьXML;
    ПараметрыЗАписиХМЛ=Новый ПараметрыЗаписиXML("UTF-8", , Ложь);
    ЗаписьXML.ОткрытьФайл(КаталогXML);
    ЗаписьXML.ЗаписатьОбъявлениеXML();    
    ЗаписьXML.ЗаписатьНачалоЭлемента("Product");
    Для Каждого нмк Из хмл Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("Product");
        ЗаписьXML.ЗаписатьАтрибут("Price", нмк.Значение.Цена);
        ЗаписьXML.ЗаписатьАтрибут("Quantity", нмк.Значение.Количество);  
        ЗаписьXML.ЗаписатьАтрибут("Name", нмк.Значение.Наименование);
        ЗаписьXML.ЗаписатьКонецЭлемента();// Номенклатура

    КонецЦикла;
    ЗаписьXML.ЗаписатьКонецЭлемента();// Номенклатура

    ЗаписьXML.Закрыть();
    

Возврат  КаталогXML;
    
КОнецФункции
   hhhh
 
9 - 25.04.21 - 08:28
(8) что-то фигня у вас тут. ПараметрыЗАписиХМЛ никак не привязано тут ни к чему, ни к какому файлу. Вы программист или где?
   bagu_muslim
 
10 - 25.04.21 - 08:33
(9) Точняк, исправил код, сорян писал код ночью проглядел
следующий код ошибки 400  {"detail":"JSON parse error - Expecting value: line 1 column 1 (char 0)"} ))
   Chameleon1980
 
11 - 25.04.21 - 08:38
(10) в темноте и с выключенным компьютером
   hhhh
 
12 - 25.04.21 - 08:42
(10) ну тут у вас действительно явно не JSON. Просто xml файл подсовываете.
   bagu_muslim
 
13 - 25.04.21 - 08:43
(11) Да типа того )
   bagu_muslim
 
14 - 25.04.21 - 08:44
(12) А как правильно отправить файл не подскажите??
   zmaximka
 
15 - 25.04.21 - 11:13
Сервер от вас ждет JSON а вы в него XML тыкаете
   bagu_muslim
 
16 - 25.04.21 - 11:20
(15) нужно в самом апи изменения сделать?
   hhhh
 
17 - 25.04.21 - 11:32
(16) ну делайте не ЗаписьXML, а ЗаписьJSON
   Alex_Alexsin_2020
 
18 - 03.05.21 - 14:27
и потом

ЗаписьXML.ЗаписатьНачалоЭлемента("Product")//два уровня с одинаковым? может здесь лучше указать Products?

    Для Каждого нмк Из хмл Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("Product");
        ЗаписьXML.ЗаписатьАтрибут("Price", нмк.Значение.Цена);
        ЗаписьXML.ЗаписатьАтрибут("Quantity", нмк.Значение.Количество);  
        ЗаписьXML.ЗаписатьАтрибут("Name", нмк.Значение.Наименование);
        ЗаписьXML.ЗаписатьКонецЭлемента()// Номенклатура


    КонецЦикла;
    ЗаписьXML.ЗаписатьКонецЭлемента()// Номенклатура

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.