Имя: Пароль:
1C
1С v8
Не работает POST-запрос
0 Chrome0102
 
03.10.18
18:21
Доброго времени суток,

8.3.10.2667

Не могу заставить POST-запрос работать из 1С. Curl работает. Проверял в Insomnia. Возвращает 200 и JSON  с необходимыми для работы параметрами.

curl --request POST \
  --url https://dev.shop-loyalty.ru:443/auth/signin/password/ \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-cid: 899e9951-1424-44b1-9287-9be4d203ef07' \
  --header 'x-token: 5ee6929d-0bd3-4067-9110-f63d2e2f976f' \
  --data '{
  "value": "ofmarket-test",
  "type": "login",
  "password": "LG67BpYioxfooMP9"
}'


Мой код в 1С:

ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла(".json");
                
        СтруктураДляJSON = Новый Структура;
        СтруктураДляJSON.Вставить("value", "ofmarket-test");
        СтруктураДляJSON.Вставить("type", "login");
        СтруктураДляJSON.Вставить("password", "LG67BpYioxfooMP9");
        
        ЗаписьJSON = Новый ЗаписьJSON;
        ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(, Символы.ВТаб);
        ЗаписьJSON.ОткрытьФайл(ИмяФайлаЗапроса, , , ПараметрыЗаписи);
        ЗаписатьJSON(ЗаписьJSON, СтруктураДляJSON);
        ЗаписьJSON.Закрыть();
        
        Соединение = Новый HTTPСоединение("dev.shop-loyalty.ru",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
        
        СоответствиеЗаголовков = Новый Соответствие;
        
        СоответствиеЗаголовков.Вставить("accept", "application/json");
        СоответствиеЗаголовков.Вставить("content-type", "application/json");
        СоответствиеЗаголовков.Вставить("x-cid", "899e9951-1424-44b1-9287-9be4d203ef07");
        СоответствиеЗаголовков.Вставить("x-token", "5ee6929d-0bd3-4067-9110-f63d2e2f976f");
    
        HTTPЗапрос = Новый HTTPЗапрос("/auth/signin/password/", СоответствиеЗаголовков);
    
        HTTPЗапрос.УстановитьТелоИзСтроки(ЗаписьJSON);
        
        Результат  = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
        
        Соединение = Неопределено;
        
        Ответ = Результат.ПолучитьТелоКакСтроку("UTF-8");


Возвращает: {"code":1001,"message":"Cannot decode input JSON"}

Вот где я косячу? Не понимаю! Тыкните мордой пожалуйста...
1 sechs
 
03.10.18
18:53
HTTPЗапрос.УстановитьТелоИзСтроки(ЗаписьJSON);
2 Затейник
 
03.10.18
18:56
HTTPСоединение + API
Вот я тоже что-то делал, может поможет
3 oleg_km
 
03.10.18
19:34
Фидлером сравни
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn