使用curl操作获取数据时遇到问题。在这里我隐藏了令牌,如果我只在我的浏览器中使用url然后它返回数据,但这里它是null。
<?php
$token = "TOKEN"; //the actual token hidden
$url = "https://crm.zoho.com/crm/private/xml/Leads/getRecords?authtoken=".$token."&scope=crmapi";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
echo $result; //does not return anything
?>
我错了,请帮助我。
答案 0 :(得分:9)
您可以尝试使用用于返回输出的CURLOPT_RETURNTRANSFER
和curl_errno()
来跟踪错误:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/my_url.php" );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$postResult = curl_exec($ch);
if (curl_errno($ch)) {
print curl_error($ch);
}
curl_close($ch);
有用的链接:curl_errno(),curl_error()
答案 1 :(得分:0)
尝试添加以下行:
<?php
$token = "TOKEN"; //the actual token hidden
$url = "https://crm.zoho.com/crm/private/xml/Leads/getRecords";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("authtoken"=>$token,"scope"=>"crmapi"));
$result = curl_exec($ch);
curl_close($ch);
echo $result; //does not return anything
?>
答案 2 :(得分:0)
请看下面的文章,不只是关闭验证,你应该用pem文件更新你的php.ini
任何运行最新Linux发行版的人都可能已经没问题了,因为他们通过他们的包管理器获得了捆绑的curl库,而最近的curl库附带了Mozilla.org的最新CA根证书包。
对于此文件未附带的PHP安装(如Windows PHP发行版),您需要下载CA根证书包并告诉PHP在哪里可以找到它。