2017-07-30 9 views
1

curlを使用してPHPコードからNatural Language Understanding Watson APIを呼び出そうとしています。私は首尾よく端末からカールを試みました。これは、このコマンドを実行するには、いくつかの結果が得られます。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のカールを使用しようとすると:

<?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 
} 
どうすべき

終わり?

+0

なぜ 'CURLOPT_POST'と' CURLOPT_HTTPAUTH'オプションをコメントアウトしますか?また、あなたのPOST引数を送信することはありません – BeetleJuice

+0

私はあなたが持っていると正確なコードを試してみました私の最後に良いです –

+0

問題は、バージョンに関連する可能性があります。 APIドキュメントへのリンクはありますか? –

答えて

1

私は空白のために私がここにこだわっているとは信じられません。この交換 :

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

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

で働いていました。空白は、:application/jsonの間にあることに注意してください。

関連する問題