代码之家  ›  专栏  ›  技术社区  ›  Jonas

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

  •  0
  • Jonas  · 技术社区  · 9 年前

    {“code”:“BadArgument”,“requestId”:“49cecd3b-7be3-4aaa-9a5e-FXXXXXXXXXX”,“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 回复  |  直到 9 年前
        1
  •  1
  •   cthrash    9 年前

    您已经将图像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));