0

私はこのようなコードを持っています。

<?php
$post_vars = array('app_key'=>'my_api_key', 'user_key' => 'my_user_key');
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));
curl_setopt($c, CURLOPT_URL, 'http://hellotxt.com/api/v1/method/user.validate');
curl_setopt($c, CURLOPT_POSTFIELDS, $post_vars);

$content = curl_exec($c);
print_r($content);
curl_close($c);

?>

これにより、「アプリキーが指定されていません」という応答が表示されます。ただし、フォーム(form-post)を介してAPIキーとユーザーキーを投稿する場合も同じように機能します。フォームを使用してAPIキーとユーザーキーを送信すると、として応答が返されます。

<rsp status="OK"><nick>testinguser</nick><name>testinguser</name><avatar>       http://hellotxt.com/avatar/testinguser/medium/image.jpg</avatar></rsp>

しかし、私はカールで行うことができませんでした。何が悪かったのか。ありがとうハーン(PS:FYI、hellotxtのAPIはこちらです。http://hellotxt.com/developers/api

4

3 に答える 3

2

投稿フィールドとして配列を送信する必要があります。これで、json でエンコードされた文字列が送信されます

したがって、これを置き換える必要があります:

curl_setopt($c, CURLOPT_POSTFIELDS, '{app_key:"my_api_key", user_key:"my_user_key"}');

curl_setopt($c, CURLOPT_POSTFIELDS, $post_vars);

どこ

$post_vars = array('app_key'=>'my_api_key', 'user_key' => 'my_user_key');

編集:Honokiの回答も検討してください..彼にもポイントがあるので投票しました。投稿を送信する予定であることをcurlに「伝える」必要があります

于 2012-04-10T09:15:49.407 に答える
2

次のように POST リクエストを作成することを指定する必要があります。

curl_setopt($c, CURLOPT_POST, 1);
于 2012-04-10T09:16:27.593 に答える
1

コードから次の行を削除してみてください。

curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));
于 2012-07-24T08:25:41.363 に答える