Имя: Пароль:
1C
 
Отправка json из 1С
0 Jaroslavka777
 
09.06.17
17:29
Доброго дня, коллеги. Пытаюсь передать из 1С HTTP запрос с json. var_dump на сервере возвращает в ответе array(0) { }. Т.е. как будто я пустое тело запроса отправляю.
P.s. Не могу использовать тип данных ЗаписьJSON ибо старая платформа, обновить не дают.
Как исправить?

Собственно код:
    HTTP = Новый HTTPСоединение("02arkada.ru",80,,,,);
    ЗаголовокЗапросаHTTP = Новый Соответствие();
    ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
HTTPЗапрос = Новый HTTPЗапрос("/api/v1/contacts/", ЗаголовокЗапросаHTTP);    
    
    СтрокаJSON = ("{
    |  ""src"": ""1c"",
    |  ""token"": ""jwt_token"",
    |  ""dateof"": ""2017-01-01 18:00:00"",
    |  ""data"": {
    |    ""id"": ""8ee4e544-b0fd-4663-b1aa-9bc18fb984be"",
    |    ""fullname"": ""Petrov"",
    |    ""gender"": ""male"",
    |    ""bday"": ""2017-01-01""
    | }
    |}");
    
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON,  КодировкаТекста.UTF8);
    ФайлРезультат = ПолучитьИмяВременногоФайла();
    HTTP.ОтправитьДляОбработки(HTTPЗапрос, ФайлРезультат);

    ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
    ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8);
    СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();
1 Torquader
 
12.06.17
00:39
Во-первых, BOM в начале неплохо бы убрать.
Во-вторых, кодировку в заголовке также неплохо бы указать.
2 Jaroslavka777
 
12.06.17
15:48
(1) Спасибо! Действительно BOM символы мешали.

Кому интересно, поменяла строку:
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON,  КодировкаТекста.UTF8);
на
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, "CESU-8");
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn