2015-05-19 2 views
0

Когда я пытаюсь определить лицо и его атрибуты из образа с помощью CURL запроса microsoft`s projectoxford он всегда возвращает следующий код ошибкиMicrosoft`s Face Api с PHP

{ «код»: «BadArgument» , "message": "Invalid Media Type."}.

При тестировании системы распознавания лиц с использованием их тестовой консоли, она успешно возвращает лицо атрибуты конкретного image.Here мой код

$query_params = array('analyzesFaceLandmarks' => 'true', 
        'analyzesAge' => 'true', 
        'analyzesGender' => 'true', 
        'analyzesHeadPose' => 'true', 
        'subscription-key'=> 'my subscription key' 
); 
$params = ""; 
$sep = ''; 
foreach ($query_params as $key => $value) { 
    $params .= $sep.$key.'='.$value; 
    $sep  = '&'; 
} 


$API_Endpoint = "https://api.projectoxford.ai/face/v0/detections?".$params; 
$img_arr  = array('url'=>'{remote file path}'); 
$data   = json_encode($img_arr); 

$headers = array(); 
     $headers[] = 'Content-Type:application/json'; 
     $headers[] = 'Content-Length:'.strlen($data); 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_HEADER, $headers); 
     curl_setopt($ch, CURLOPT_URL, $API_Endpoint); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     $result = curl_exec($ch); 


     curl_close($ch); 
     print_r('<pre>'); 
     print_r($result); 

Если кто-нибудь знает причину этой проблемы, пожалуйста, помогите мне, как только насколько это возможно.

ответ

1

Немного поздно, но здесь представлен модифицированный рабочий пример. Я думаю, что проблема, с которой вы столкнулись, это CURLOPT_HTTPHEADER - не CURLOPT_HEADER (в данном случае).

define('API_BASE_URL',  'https://api.projectoxford.ai/face/v0/detections?'); 
define('API_PRIMARY_KEY',  'YOUR KEY HERE'); 
$img = 'YOUR IMAGE URL HERE'; 

$post_string = '{"url":"' . $img . '"}'; 

$query_params = array(
    'analyzesFaceLandmarks'  => 'true', 
    'analyzesAge'      => 'true', 
    'analyzesGender'     => 'true', 
    'analyzesHeadPose'    => 'true', 
); 

$params = ''; 
foreach($query_params as $key => $value) { 
    $params .= $key . '=' . $value . '&'; 
} 
$params .= 'subscription-key=' . API_PRIMARY_KEY; 

$post_url = API_BASE_URL . $params; 

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
     'Content-Type: application/json',                     
     'Content-Length: ' . strlen($post_string)) 
    );  

    curl_setopt($ch, CURLOPT_URL, $post_url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($ch); 
curl_close($ch); 

print_r('<pre>'); 
print_r($response); 
Смежные вопросы