我正在将 Badgeville REST API 与我的 PHP 5.3、curl 7.22 应用程序集成。
BV 的 API 文档都使用命令行 curl 调用作为示例。当我运行这些示例时,它们运行良好。
当我尝试对 PHP Curl 类做同样的事情时,我总是从 BV 服务器收到 500 错误。
我尝试使用 Chrome 中的 Advanced Rest Client 扩展来实现同义功能。
PHP 卷曲示例:
$ch = curl_init('http://sandbox.v2.badgeville.com/api/berlin/[private_api_key]/users.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
if($this->getRequestType() == 'POST')
{
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,
array(
'user[name]' => 'Generic+Username',
'user[email]' => 'johndoe%40domainname.com'
);
);
}
$response = curl_exec($ch);
休息客户端示例:
网址:http://sandbox.v2.badgeville.com/api/berlin/[private_api_key]/users.json
POST 无标头有效负载:
用户[名称]=通用+用户名&用户[电子邮件]=johndoe%40domainname.com
我已经手动创建了命令行 curl 调用并使用 运行它shell_exec()
,但我真的不想这样做。
在我的研究中,我发现了一个 Drupal模块,所有的 API 调用都是通过fsockopen()
调用完成的。
有没有办法使用 PHP Curl 类成功地进行 Badgeville 调用?