1

Invalid json

Тема: Invalid json

Добрый день. Пытаюсь создать новую культуру с помощью HTTP запроса. Передаю в файл JSON текст, как указанно в примере API документации:
{
  "c": "pink",
  "n": "Кукуруза 2020",
  "rid": 0,
  "w": 0
}
Выдает ошибку - {"error": 4, "details": "Invalid json."}.  Здесь - "sdk.wialon.com/products/hecterra", с тем же текстом новую культуру создает исправно. Подскажите, что я упускаю.

2

Invalid json

Re: Invalid json

Добрый день, darya_k!

С помощью чего и как вы делаете запрос ?

+ Пример как создать crop с помощью curl
curl -X POST 'https://hecterra.wialon.com/api/resources/RESOURCE_ID/crops' -d '{"c": "pink","n": "Кукуруза 2020","rid": 0,"w": 0}' -H 'Authorization: Token YOUR_TOKEN'
3

Invalid json

Re: Invalid json

C помощью 1С. Делаю стандартный Post запрос как для Wialon'а. В случае Post запроса передается строка данных в JSON (например как в Wialon'е - &params={"creatorId":<long>,
                           "name":<text>,
                           "hwTypeId":<long>,
                           "dataFlags":<long>}.
В данном случае -d (data)  нужно передать  в JSON. Но во всех моих попытках выдает  {"error": 4, "details": "Invalid json."}. В тестовом режиме Hecterra API  {"error": 4, "details": "Invalid json."} выдает если ввести явно некорректные данные. А вот при запросе из 1С выдает во всех случаях. Хотя запрос стандартный и с Wialon'ом ошибок нет.

4

Invalid json

(12/02/2020 18:28:06 отредактировано mitu)

Re: Invalid json

darya_k

Вы не верно делаете запрос, данные должны быть переданы в теле запроса, а не в урле. так же не надо делать params={...}


+ Возможно вам это поможет
// Я не уверен в правильности данного кода, так как не имею возможности проверить 
// но должен быть понятен смысл
HTTPСоединение = Новый HTTPСоединение("https://hecterra.wialon.com");
HTTPЗапрос = Новый HTTPЗапрос("/api/resources/YOUR_RESOURCE/crops"); 
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token YOUR_TOKEN");
HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
// строка json "{\"c\": \"pink\",\"n\": \"Кукуруза 2020\",\"rid\": 0,\"w\": 0}" 
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
5

Invalid json

(12/02/2020 17:47:25 отредактировано darya_k)

Re: Invalid json

params={...} приведен, как пример, и возможно мне не удалось точно донести до вас свои действия. Однако, стало ясно, что было не так. Спасибо.

6

Invalid json

Re: Invalid json

Добрый день!
Потребовалась интеграция с 1с.
Возникли след. проблемы :
На примере выше из темы культуру создать не удается, скрин во вложении.

При выполнении из 1с :

    Значение1С = Новый Структура;
    Значение1С.Вставить("c", "pink");
      Значение1С.Вставить("n", "Кукуруза3999");
    Значение1С.Вставить("rid", 0);
    Значение1С.Вставить("w", 0);
        ЗаписатьJSON(тЗаписьJSON, Значение1С);
        strJSON = тЗаписьJSON.Закрыть();   
    HTTPСоединение = Новый HTTPСоединение("hecterra.wialon.com");
    HTTPЗапрос = Новый HTTPЗапрос("/api/resources/1******1/crops");
    HTTPЗапрос.Заголовки.Вставить("Authorization", "Token f5675***********************D5");
    HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
    HTTPЗапрос.Заголовки.Вставить("accept", "application/json");
    HTTPЗапрос.УстановитьТелоИзСтроки(strJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

   
    Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Ответ возвращает код состояния "301"

7

Invalid json

Re: Invalid json

IvanovIvan
Не хватает вложения.

Katerina Alexandrova
Product Manager (Mobile)
Gurtam
8

Invalid json

Re: Invalid json

Добавил

  • Invalid json
9

Invalid json

Re: Invalid json

Добрый день, IvanovIvan

При выполнении из 1с :

Судя по коду, вы делаете запрос на http://hecterra.wialon.com - и происходит редирект на https://hecterra.wialon.com

Добавил

На скрине видна ошибка - вы написали слово token с маленькой буквы, необходимо писать с большой: Token 037b***.