libcurl中不支持或禁用协议https

AnN*_*LaI 16 php curl libcurl oscommerce

我在我的应用程序中使用Authorize.net(在OSCOMMERCE中),当用户付款时返回空响应.我调试并发现它返回此错误:

libcurl中不支持或禁用协议https

我送探测器网址以https存在没有空间开始 https://secure.authorize.net/gateway/transact.dll

我在共享托管服务器中的应用 我怀疑这是服务器端问题还是编程问题?

Car*_*ton 25

对于那些支持https但仍然得到类似于下面的错误的人

[curl] 1: Protocol %20https not supported or disabled in libcurl [url] %20https://www.example.com/%20
Run Code Online (Sandbox Code Playgroud)

确保URL有效

  • 尝试使用基本URL,例如https://www.example.com
  • 检查您的网址,确保网址的开头/结尾没有空格(如上图所示为%20)
  • 检查URL中可能会破坏卷曲请求的字符


par*_*ini 23

我有这个问题,这是因为url中的空格:

' https://www.google.com/recaptcha/api/siteverify'
Run Code Online (Sandbox Code Playgroud)

如你所见,在https之前有一个空格


dre*_*010 8

创建一个名为info.php的脚本并放入其中<?php phpinfo(); ?>.将其保存在您网站的某个位置,以便您可以从浏览器访问它.

找到curl部分并检查支持哪些Protocols.如果https未列出,则cURL未使用SSL支持构建,您无法使用https.

您还可以查看第一部分Registered PHP Streams,看看是否https列出.如果是这样,那么您可以回退使用PHP的套接字函数或函数,例如file_get_contents()fopen使用上下文.

由于您提到您在共享主机上,请求您的主机重新编译PHP,以便PHP和curl都使用OpenSSL支持构建,因此您可以使用加密,否则您将需要找到另一个解决方案.

  • 谢谢@ drew010,但是如果phpinfo()告诉我cURL支持HTTPS并且它仍然会抛出此错误,我该怎么办? (10认同)