Azure 认知服务上的 PHP“Json 格式错误”

Posted

技术标签:

【中文标题】Azure 认知服务上的 PHP“Json 格式错误”【英文标题】:PHP "Json Format Error" on Azure Cognitive Services 【发布时间】:2018-01-20 23:56:26 【问题描述】:

我正在尝试使用 Azure OCR 服务来取回图像的文本。 不幸的是,我总是收到此错误:

"code":"BadArgument","re​​questId":"49cecd3b-7be3-4aaa-9a5e-fXXXXXXXXXXXX","message":"JSON 格式错误。"

我的代码是:

<?php

(http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';

$request = new Http_Request2('https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/ocr'); 
$url = $request->getUrl();

$headers = array(

    'Content-Type' => 'application/json',

    'Ocp-Apim-Subscription-Key' => 'c7b9e7ab25b14XXXXXXXXXXXXXXXXXX',
);


$request->setHeader($headers);

$parameters = array(

    'language' => 'unk',
    'detectOrientation ' => 'true',
);

$url->setQueryVariables($parameters);

$request->setMethod(HTTP_Request2::METHOD_POST);


$request->setBody("https://image.spreadshirtmedia.net/image-server/v1/mp/compositions/P116103877MPC131734766/views/1,width=300,height=300,appearanceId=1,backgroundColor=E8E8E8,version=1472099537/hallo-sprechblase-auf-babybauch-oder-babyshirt-t-shirts-maenner-premium-t-shirt.jpg");  

try

    $response = $request->send();
    echo $response->getBody();  


catch (HttpException $ex)

    echo "Fehler :(";
    echo $ex;

?>

【问题讨论】:

【参考方案1】:

您已将图像 URL 指定为正文,但如错误消息所示,它需要编码为 JSON。试试:

$body = array('url' => 'https://image.spreadshirtmedia.net/image-server/v1/mp/compositions/P116103877MPC131734766/views/1,width=300,height=300,appearanceId=1,backgroundColor=E8E8E8,version=1472099537/hallo-sprechblase-auf-babybauch-oder-babyshirt-t-shirts-maenner-premium-t-shirt.jpg');

$request->setBody(json_encode($body));

【讨论】:

以上是关于Azure 认知服务上的 PHP“Json 格式错误”的主要内容,如果未能解决你的问题,请参考以下文章

Azure AI基础到实战(C#2022)-认知服务

使用Azure认知服务快速搭建一个目标检测平台

使用Azure认知服务快速搭建一个目标检测平台

基于 Azure 的认知服务将文本合成语音

Azure Synapse Notebook 对认知服务转换器的请求

Azure/Microsoft 认知服务自定义视觉 - 啥是对象检测模型输出张量规范?