Google Vision API — получено недопустимое содержимое JSON. Невозможно разобрать номер

Я работал с Google Vision API.

Когда я скручиваюсь в командной строке, это дает мне статус 200 OK с помощью следующей команды:

curl -v -k -s -H "Content-Type: application/json" https://vision.googleapis.com/v1/images:annotate?key=API_KEY --data-binary @base64.json

Но когда я использую его с PHP, я получаю ответное сообщение:

{«error»: {«code»: 400, «message»: «Получена недопустимая полезная нагрузка JSON. Невозможно проанализировать номер. \ n ——————— \ n ^ «,» status «:» INVALID_ARGUMENT «}}

try {
$post = array(
'file' => '@base64.json'
);

$ch = curl_init('https://vision.googleapis.com/v1/images:annotate?key=API_KEY');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$content = curl_exec($ch);

if (FALSE === $content)
throw new Exception(curl_error($ch), curl_errno($ch));

curl_close($ch);  // Seems like good practice
return $content;
} catch (Exception $e) {
trigger_error(sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
}

Я следовал этому примеру:

https://cloud.google.com/vision/docs/getting-started

0

Решение

Пожалуйста, установите следующие параметры:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);

http://alvinalexander.com/php/php-curl-examples-curl_setopt-json-rest-web-service

2

Другие решения

Я была такая же проблема. Моей проблемой были символы новой строки, присутствующие в содержимом json. Как только я удалил все пробелы, я снова начал получать 200 с.

0

По вопросам рекламы [email protected]