PHP Curl帖子不起作用,没有帖子

时间:2012-08-22 04:11:38

标签: php curl

我在同一台服务器上有两个站点:

api.mysite.com john.mysite.com

在我的API网站上,我有一个接受POSTed json数组的服务。在我的john.mysite.com网站上,我调用该服务并使用以下方式发布:

 $info['id'] ="oo_".uniqid();
 $info['version'] ="5";

 $url = "http://api.mysite.com/services/addclient";
 $posted_fields = json_encode($info);

   $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
   $result = curl_exec($ch);
   echo $result;

当这个被调用时,我没有收到任何发布到网络服务的内容。我已经进入该代码并抛出$ _POST并且它是空的。为什么curl不通过POST发送数据?

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

一个问题是您json_encode数据而不是表单编码。

另一个原因是$info可能未初始化。

另一个是你在第9行错误地$postfields

尝试:

$info['id'] ="oo_".uniqid();
$info['version'] ="5";

$url = "http://api.mysite.com/services/addclient";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($info));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
echo $result;

答案 1 :(得分:1)

第9行的错误

$postfields

应该是

$posted_fields