【发布时间】:2014-08-21 12:08:35
【问题描述】:
我正在通过 curl 与 API 连接并发布到它。
API 支持只是说我应该这样形成我的请求:
“如果您向正确的 URL 发送一个 POST 请求,其内容类型为 JSON,正文如下所示,您应该有一个良好的开端:
{
"contact": {
"email": "justin@myapi.com",
"last_name": "Johnston",
"company": "MyApi",
"first_name": "Justin"
}
}
但是,我认为这可能是针对普通的 PHP 帖子,而不是针对我正在使用的 CURL。
所以,我的 curl 代码是:
//Set Curl options
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "first_name=" . $db->f('fname') . "&last_name=" . $db->f('lname') . "&email=" . $db->f('Email') . "&company=" . $db->f('studio_name') . "");
但是,当我运行 POST 时,我从 API 返回的响应显示:
{"error":"Invalid parameters. Should be a hash in the form { 'contact' : { } }."}
所以,我假设这是因为我的 POSTFIELDS 不正确,并且我知道我需要以“联系人”开头,但我不确定如何格式化它并且无法找到示例。有什么想法吗?
非常感谢您提供的任何帮助!我真的很感激!
克雷格
【问题讨论】:
-
我认为问题是你发送一个字符串作为参数,它应该是一个 JSON 对象。只需使用 json_encode() 对数据数组进行编码并通过 POST 而不是您正在形成的字符串发送。
-
看看this是否有帮助。