Google 愿景 API - 收到无效的 JSON 负载。无法解析数字
Google Vision API - Invalid JSON payload received. Unable to parse number
我正在使用 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 一起使用时,我收到一条 return 消息:
{ "error": { "code": 400, "message": "Invalid JSON payload received. Unable to parse number.\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);
}
我按照这个例子:
请设置以下选项:
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
我遇到了同样的问题。我的问题是 json 内容中出现换行符。删除所有空格后,我又开始获得 200s。
我正在使用 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 一起使用时,我收到一条 return 消息:
{ "error": { "code": 400, "message": "Invalid JSON payload received. Unable to parse number.\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);
}
我按照这个例子:
请设置以下选项:
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
我遇到了同样的问题。我的问题是 json 内容中出现换行符。删除所有空格后,我又开始获得 200s。