Ошибка формата PHP Json в Azure Cognitive Services

Я пытаюсь использовать службу OCR Azure, чтобы вернуть текст изображения. К сожалению, я всегда получаю эту ошибку:

{"code":"BadArgument","requestId":"49cecd3b-7be3-4aaa-9a5e-fXXXXXXXXXXX","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;
}
?>

person Jonas    schedule 12.08.2017    source источник


Ответы (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));
person cthrash    schedule 12.08.2017