2017-03-01 10 views
0

個人が作成したライブラリがあります(https://github.com/tgallice/wit-php)。しかし、私は彼がカールをどのようにフォーマットしたのか分かりません。私はただ一つのリクエストをしたいので、彼の図書館を使うことは過度のものになるでしょう。ここでPHPでHTTPリクエストのカールをどのようにフォーマットする必要がありますか?

は、端末で動作する文字列ですが、私はPHPで記述するかどうかはわかりません。curl -H 'Authorization: Bearer ACCESSCODE' 'https://api.wit.ai/message?v=20160526&q=mycarisbroken'

$ch1 = curl_init(); 
curl_setopt($ch1, CURLOPT_URL,"https://api.wit.ai/message?v=20160526&q=my%20car%20doesnt%20work"); 
curl_setopt($ch1, CURLOPT_POST, 1); 
// curl_setopt($ch1, CURLOPT_POSTFIELDS,$vars); //Post Fields 
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); 

$headers = [ 
    'Authorization: Bearer ACCESSCODEOMITTED', 
]; 

curl_setopt($ch1, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch1, CURLOPT_HEADER, true); 
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, false); 
$server_output = curl_exec ($ch1); 
curl_close($ch1); 
Data::$answer = json_decode($server_output)['entities']['intent'][0]['value']; 
+0

チェックアウトは[libcurlの](http://php.net/curl/) – hassan

+0

私は-Hであるかわからない@HassanAhmedので、そのリンクはあまり役に立たない – user7391050

+0

curlの-Hフラグはサーバに送信するヘッダを表します – hassan

答えて

0

あなたが与えたコマンドラインは、リモートサーバにGETを送信します - しかし、あなたの中にPOSTを送信するコード。 curl_setopt($ch1, CURLOPT_POST, 1);をコメントアウトしてください。あなたのPHPコードは、コマンドラインとまったく同じように動作します。

0

このPHPライブラリhttps://github.com/php-curl-class/php-curl-classを試すことができます。基本的には、PHPカール関数のすべてをクラスにラップします。後で実装のモックを簡単に作成し、適切なユニットテストを書くことができます。

あなたのコードでは、そのようなものになります。

<?php 
$curl = new Curl(); 
$curl->setHeader('Authorization', 'Bearer ACCESSCODEOMITTED'); 
$curl->get('htps://api.wit.ai/message?v=20160526&q=mycarisbroken'); 

if ($curl->error) { 
    echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n"; 
} else { 
    echo 'Response:' . "\n"; 
    var_dump($curl->response); 
} 
関連する問題