我将Badgeville REST API与我的PHP 5.3,curl 7.22应用程序集成在一起。使用PHP Curl与命令行curl的区别
BV的API文档全部使用命令行卷曲调用作为示例。当我运行这些示例时,它们工作正常。
当我试图用PHP Curl类做同样的事情时,我总是从BV服务器得到一个500错误。
我试图在Chrome中使用高级Rest 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);
REST客户端,例如:
网址: http://sandbox.v2.badgeville.com/api/berlin/[private_api_key]/users。 JSON
POST 没有头部有效载荷:
用户[名称] =通用+用户名&用户[邮件] =为johndoe%40domainname.com
我手动创建命令行卷曲电话,跑了与shell_exec()
,但我真的不想有这样做。
在我的研究中,我发现Drupal module和所有的API调用通过fsockopen()
调用完成。
有没有一些方法可以成功地使用PHP Curl类进行Badgeville调用?