2017-08-12 32 views
0

我正尝试使用Azure OCR服务获取图像的文本。 不幸的是我总是收到此错误:Azure认知服务上的PHP“Json格式错误”

{"code":"BadArgument","requestId":"49cecd3b-7be3-4aaa-9a5e-fXXXXXXXXXXX","message":"JSON format error."}

我的代码是:

<?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; 
} 
?> 

回答

0

您指定的图像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));