2017-04-20 22 views
0

ドキュメントは、次のように述べている:PHP CURL認証

curl —X POST -c cookies.txt —d "login=demo&password=demo42" https://www.myadcash.com/console/login_proxy.php 

出力は次のようになります。

{"token":"6333531373034343433623663646836383165693937383167373264323334663"} 

私の現在のコード

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("login"=>"demo","password"=>"demo42")); 

curl_setopt($ch,CURLOPT_URL,"https://www.myadcash.com/console/login_proxy.php"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . 'cookies.txt'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 
curl_close($ch); 
echo $response; 

ませJSON応答が表示されません。テキストファイルは保存していますが。正しい方向を見つけるのを手伝ってください。また、コードにエラーがある場合は、私に知らせてください。

答えて

1

-d "login=demo&password=demo42"は、ヘッダーではなく投稿フィールドとして渡す理由のデータフィールドを意味します。

したがって、あなたのカール内の2行

curl_setopt($ch, CURLOPT_POST, 1); //Optional 
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=demo&password=demo42"); 

、あなたが出力を取得する必要があります。 文書に基づいて、資格情報はヘッダーではなくポストフィールドでなければならないので、ヘッダーにloginpasswordを入れる必要はありません。

あなたは

curl_setopt($ch, CURLOPT_HTTPHEADER, array("login"=>"demo","password"=>"demo42")); 
+0

感謝を必要としない、それが働きました。 –