2017-08-12 2 views
0

J'essaie d'utiliser le service OCR Azure pour récupérer le texte d'une image. Malheureusement, je suis toujours à obtenir cette erreur:PHP "Erreur de format Json" sur Azure Cognitive Services

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

Mon code est:

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

Répondre

0

Vous avez spécifié l'URL de l'image que le corps, mais il doit être codé comme JSON que l'erreur message indique. Essayez:

$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));