Ошибка запроса API REST Google Cloud Vision - PullRequest
0 голосов
/ 03 июля 2019

Я хочу использовать API Cloud Vision для обнаружения ЭТИКЕТК. Используя следующий код для отправки запроса через мой бэкэнд-файл.

    import {vision} from 'backend/cloudVision.jsw';

    let url = {
  requests:[
    {
      image:{
        source:{
          imageUri: "https://static.wixstatic.com/media/33aa21_89b30ab70dcb480992ec7b96b316a907~mv2_d_2000_2000_s_2.png"
        }
      },
      features:[
        {
          type:"LABEL_DETECTION",
          maxResults:10
        }
      ]
    }
  ]
};

export function button1_click(event) {
    vision(url)
    .then( (response) => {
        console.log(response);
    });
}

В моем бэкэнд-файле cloudVision.jsw у меня есть настройка POST-запроса, как показано ниже

import {fetch} from 'wix-fetch';

export async function vision(url) {

  const apiKey = "API_KEY_HERE"; 

  const response = await fetch("https://vision.googleapis.com/v1/images:annotate?key=" + apiKey, {
    method: 'post',
    headers: {
      "Content-Type": "application/json"
    },
    body: url
  });

  if (response.status >= 200 && response.status < 300) {
    const ret = await response.json();
      return ret;
  }
    let res = await response.json();
    return res;
}

Однако я получаю сообщение об ошибке 400 «Получено недопустимое содержимое JSON. Неожиданный токен. \ N [объект объекта] \ n ^» при выполнении запроса API.

Я думаю, что это может быть проблема с кодировкой, но не уверен.

Использование для этого Corvid.

1 Ответ

0 голосов
/ 04 июля 2019

Да, это проблема с тем, как закодирован запрос.Я не знаком с Корвидом.Возможно, попробуйте поместить ключи в кавычки, например: «запросы» вместо запросов.Похоже, что Corvid добавляет «\ n», поэтому попробуйте определить URL в одной строке.

...