cURL错误1:不支持的协议:https。

4

大家好,

我正在尝试使用PHP的cURL包装器方法通过HTTPS POST一个SOAP请求,但是一直收到以下cURL错误:Error 1: Unsupported protocol: https,请问这是为什么呢?目标URL是正确的,我可以通过命令行访问它。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$this->apiURL);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: text/xml;charset=UTF-8',
    'Content-length: '.strlen($SOAPRequest),
    'SOAPAction: ""'
) ); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $SOAPRequest);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

$result = curl_exec($ch);

尝试在禁用SELinux(如果正在运行)和/或iptables之后再试。 - Sarwar Erfan
另外,您在哪里设置远程证书以用于https通信?http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/ - Sarwar Erfan
2个回答

7

首先检查 phpinfo();

如果在 phpinfo() 的结果中启用了 Curl,则

  • 问题可能是包含URL的MySQL字段中存在多余的空格。错误不是 "HTTPS"协议不受支持,而是 " HTTPS"(前导空格)不受支持

是的,就是这样——HTTPS之前多了一个空格。唉...谢谢! - Slinky

0

您的PHP编译时没有启用SSL支持。


我们的PHP已经编译支持SSL。 - Slinky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接