从PHP代码调用Watson API

时间:2017-07-30 04:42:58

标签: php curl watson watson-dialog

我正在尝试使用curl从我的PHP代码中调用自然语言理解Watson API。我已经成功地尝试了终端的卷曲。它给出了执行此命令的一些结果:

curl -u "my_username":"my_password" "https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27&text=I%20still%20have%20a%20dream.&features=sentiment,keywords"

然而,当我尝试使用此代码在php中使用curl时:

<?php
$url = "https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27&text=I%20still%20have%20a%20dream%2C%20a%20dream%20deeply%20rooted%20in%20the%20American%20dream%20%E2%80%93%20one%20day%20this%20nation%20will%20rise%20up%20and%20live%20up%20to%20its%20creed%2C%20%22We%20hold%20these%20truths%20to%20be%20self%20evident%3A%20that%20all%20men%20are%20created%20equal.&features=sentiment,keywords";
$post_args = array(
         'version' => '2017-02-27',
         'url' => 'https://davidwalsh.name/curl-post',
         'features' => 'sentiment,keywords' 
     );
$headers = array(
        'Content-Type:application/json'
    );
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, "my_username:my_password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
//curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_args));
$result = curl_exec($ch);
    if ($result === FALSE) {
        die('Send Error: ' . curl_error($ch));
    }
curl_close($ch);
echo $result;
?>

我得到了这个结果:

{
"error": "unsupported media type",
"code": 415
}

应该做什么?

1 个答案:

答案 0 :(得分:1)

由于空白,我无法相信我被困在这里。 取而代之:

$headers = array(
        'Content-Type:application/json'
    );

$headers = array(
        'Content-Type: application/json'
    );

的工作。请注意:application/json之间的空白区域。