2017-02-21 9 views
0

PHP内でcURLを使用するのが難しいです。私はこれを "翻訳"するために何をする必要があるのか​​よくわかりません:cURLをPHPに翻訳する

curl -X POST -u "{username}:{password}" --header "Content-Type: application/json" --data-binary @profile.json "https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2016-10-20&consumption_preferences=true&raw_scores=true" 

へのPHPへの実行。

これは私がこれまで持っているすべてのですが、私は似ても似つかないよように私は感じている:

$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'; 

$ch2 = curl_init($url2); 
curl_setopt($ch2, CURLOPT_POST, 1); 
curl_setopt($ch2, CURLOPT_POSTFIELDS, $myvars2); 
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch2, CURLOPT_HEADER, $request_headers); 
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); 
$response2 = curl_exec($ch2); 
var_dump($response2); 
+1

実際にあなたはかなり近づいています。あなたはちょうど私が見ているものから認証ピースを紛失しています。上のスクリプトから何の出力を得ていますか? – JakeParis

+0

それは私が詰まっていると思う作品です。私は '-u'が何であるか、それをPHPにどのように"翻訳 "するかを知らない。私はヘッダーを見つけましたが、それはそれです。 – jonmrich

答えて

3

あなただけの認証ピースが欠けているように見えます:

curl_setopt($ch2, CURLOPT_USERPWD, "yourUsername:yourPassword"); 

manualをご覧ください。また、あなたはこれを少しでも簡単に行うことができます。

curl_setopt_array($ch2, array(
    CURLOPT_POST => 1, 
    CURLOPT_POSTFIELDS => $myvars2, 
    CURLOPT_FOLLOWLOCATION => 1, 
    CURLOPT_HEADER => $request_headers, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_USERPWD => 'yourUsername:yourPassword' 
); 
+0

スーパーに役立つ...ありがとう。私は今認証されていますが、データを間違って渡す必要があります。 'curl -X POST --header 'Content-Type:text/plain' --header 'Accept:application/json' --header 'Content-Language:en' --headerこれは私が必要とする最初のビットです。 'Accept-Language:en' -d 'プレーンテキストの束がここにあります。 '-d'部分以外はすべて持っています。そのための「コマンド」は何ですか? – jonmrich

+0

-d:https://curl.haxx.se/docs/manpage.html#-d – JakeParis

+0

@jonmrichこのパラメータを使用して送信する必要があるのは、 – JakeParis

関連する問題