繁体   English   中英

Curl 不适用于 hellotxt API

[英]Curl not working for hellotxt API

我有这样的代码。

<?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);

?>

这会将返回响应显示为“未指定应用程序密钥”。 但如果我通过表单(表单发布)发布 api 密钥和用户密钥,同样有效。 当我使用表单提交 api 密钥和用户密钥时,我得到的响应是。

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

但我不能用 curl 做。出了什么问题。 请指导我谢谢 Haan(PS:仅供参考,hellotxt 的 api 在这里。http://hellotxt.com/developers/api

你应该发送一个数组作为 post 字段,现在你发送一个 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 你打算发送帖子

您必须指定要发出如下 POST 请求。

curl_setopt($c, CURLOPT_POST, 1);

尝试从您的代码中删除这一行:

curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM