2017-02-21 82 views
0

我正在打電話給沃森的API,像這樣:沃森返回415錯誤

$url2 = 'https://watson-api-explorer.mybluemix.net/personality-insights/api/v3/profile?raw_scores=false&csv_headers=false&consumption_preferences=true&version=2017-02-01'; 
$request_headers = array(); 
$request_headers[] = 'Accept: application/json'; 
$request_headers[] = 'Content-Type: text/plain'; 

$request_headers[] = 'Content-Language: en'; 
$request_headers[] = 'Accept-Language: en'; 

$simple_data = 'some really interesting text goes here'; 


$plain_data = json_encode($data); 
$ch2 = curl_init($url2); 
curl_setopt_array($ch2, array(
    CURLOPT_POST => 1, 
    CURLOPT_POSTFIELDS => $simple_data, 
    CURLOPT_FOLLOWLOCATION => 1, 
    CURLOPT_HEADER => $request_headers, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_USERPWD => 'XXX:YYY' //removed for illustration 
) 
); 
$response2 = curl_exec($ch2); 
var_dump($response2); 

這使得如下返回一個錯誤:

{"code":415,"sub_code":"S00002","error":"Unsupported Content-Type: \"application\/x-www-form-urlencoded\""} 

不知道爲什麼,這段文字是不是被正確發送以及我需要如何發送它。

+0

來自watson的錯誤是該帖子發送的頭文件中不支持'application/x-www-form-urlencoded'。你確定一個職位應該工作嗎? –

回答

2

您應該使用CURLOPT_HTTPHEADER而不是CURLOPT_HEADER來設置請求標頭。

CURLOPT_HEADER是一個「開/關」開關,用於設置標題與請求與否。