编辑:我现在已经通过使用HTML表单进行检查,通过POST提交数据,这非常有效,所以肯定是一个cURL错误任何帮助非常感谢!看起来这很奇怪昨晚有效,现在不是今晚...
o我设法让我的第一个cURL功能在昨晚工作。出于某种原因(并且没有我所知道的任何变化)它今天不起作用。
我的代码是:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://www.example.com/api");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "apiKey=var1&message=var2&to=var3&from=var4");
curl_exec ($curl);
curl_close ($curl);
?>
现在我没有在PHP日志中收到任何错误,我看不到任何明显的语法错误。我已经检查过Im&#39;安装使用v7和cURL(如果这是正确的技术术语?)。当我访问API地址时,POST数据将不使用此函数,它会抛出一个身份验证错误,所以至少我会期望这样,但只会得到一个空白页。
这让我相信cURL本身并不是在发布数据,而是以某种方式忽略它。如果我在cURL之后放入标题,那么它们会遵循这一点,因此它们在代码中肯定没有致命错误。
答案 0 :(得分:0)
很抱歉不指出明显的问题,但是你检查了卷曲错误吗?
$err = curl_errno($curl);
$errmsg = curl_error($curl);
$info = curl_getinfo($curl);
答案 1 :(得分:-1)
所以事实证明我的提供商已经停止接受对HTTP的请求,现在需要是HTTPS。
快速解决这个问题 - 虽然我从安全的角度来看并不是最优的,这对我们来说很好,因为数据不敏感,但我想到的是 - 要添加这行代码:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
在你的卷曲功能开始时。
我在这里找到了答案,它还讨论了一个更强大的修复方法:
http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/