Имя: Пароль:
1C
1С v8
POST запрос в виде JSON файла к базе 1С
0 wmonref
 
30.01.22
23:07
Приветствую!
Недавно начал работать с HTTP сервисами, так что не пинайте сильно...

"Простые" запросы GET и POST типа http://адресБД/ИмяБД/hs/ИмяHTTPсервиса/ИмяМетода?параметр понятно как обрабатывать.

А вот как обработать POST запрос в виде JSON файла? Т.е. сайт посылает в 1С POST запрос в виде JSON файла. Как во первых должна выглядеть строка такого запроса (на примере " http://адресБД/ИмяБД/hs/ИмяHTTPсервиса/ИмяМетода?параметр "  )?

Спасибо
1 Casey1984
 
31.01.22
02:52
(0) JSON файл пойдет в теле запроса.
2 DrZombi
 
гуру
31.01.22
06:18
(0) Так же.
3 DrZombi
 
гуру
31.01.22
06:19
Для 1С вообще фиолетово, все почти однообразно, отличается только в параметре "GET" "POST" "PUT" и т.д. :)
Кончено, может на низком уровне запросы там уникальны, но для 1С программиста все едино :)
4 wmonref
 
31.01.22
15:10
(2) Значит я жду от сайта запрос типа http://адресБД/ИмяБД/hs/ИмяHTTPсервиса/ИмяМетода?параметр123

В модуле ИмяHTTPсервиса пишу стандартные действия:

Функция ОбработатьПОСТ(Запрос)
  
    Ответ = Новый HTTPСервисОтвет(200);
    параметр123= Запрос.ПараметрыЗапроса.Получить("123");
    
    Если параметр123 <> Неопределено Тогда
        //Как прочитать JSON??

    КонецЕсли;
КонецФункции
5 wmonref
 
31.01.22
15:15
в (4) ошибочка...

параметр123 = Запрос.ПараметрыЗапроса.Получить("параметр123");
6 yzimin
 
31.01.22
15:27
Как раз API делаю, которая принимает через POST json

Функция ЗагрузитьИнформациюPOST(Запрос)
        
    type = Запрос.ПараметрыURL["type"];
    
    ТекстЗапроса = Запрос.ПолучитьТелоКакСтроку();
    
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(ТекстЗапроса);
    
    Попытка
        СтруктураДанных = ПрочитатьJSON(ЧтениеJSON, Истина);
        ЧтениеJSON.Закрыть();
    Исключение
        Возврат Ответ400();
    КонецПопытки;
...
7 novichok79
 
31.01.22
16:52
мда.
http 1.1 - текстовый протокол, а значит вся инфа идет в текстовом виде.
обычно заголовки + \n\n + тело запроса.
попробуйте по tcp/ip соединиться и отправить запрос, сразу поймете как эта хрень работает.
json - обычная строка, вам нужно ее десериализовать в объекты при получении запроса пользака.
8 wmonref
 
01.02.22
21:25
Всем спасибо! Вопрос закрыт!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший