2012-03-07 127 views
9

我在我的应用程序中使用Authorize.net(它在OSCOMMERCE中),当用户付款时它返回空的响应。我调试,并发现它返回这个错误:Protocol不支持或禁用libcurl

Protocol https not supported or disabled in libcurl

我送探测器网址以https开头存在这样 https://secure.authorize.net/gateway/transact.dll

我的共享托管服务器应用程序没有空间。我怀疑这是服务器端问题还是编程问题?

回答

9

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

找到卷曲部分,检查什么协议支持。如果没有列出https,则cURL不是使用SSL支持构建的,并且您不能使用https。

您还可以查看Registered PHP Streams的第一部分,看看是否列出了https。如果是这样,那么你可以后备使用PHP的套接字函数或函数,如file_get_contents()fopencontext

由于您提到您位于共享主机上,因此请求您的主机重新编译PHP,以便PHP和curl均使用OpenSSL支持构建,以便您可以使用加密,否则您需要查找其他解决方案。

+1

简而言之,请联系您的托管公司,如果他们不支持它,那么您需要去那些可以做的。 – soemarko 2012-03-07 04:41:43

+0

Thanks lot drew010 ..你给了我一个很好的解决方案 – AnNaMaLaI 2012-03-07 04:43:51

+9

Thanks @ drew010,但是如果phpinfo()告诉我cURL支持HTTPS并且它仍然会抛出这个错误,我该怎么办? – xanderiel 2013-12-11 15:40:56

16

对于那些具有HTTPS支持,但仍然得到类似的错误下面

[curl] 1: Protocol %20https not supported or disabled in libcurl [url] %20https://www.example.com/%20 

确保URL是有效的

  • 尝试在基本URL,如https://www.example.com
  • 检查您的网址并确保网址开头/结尾处没有空格(如上面显示为%20)
  • 您在您的网址可能会打破卷曲请求
+0

我真的很感谢你的贡献,有时候开发者会绕过一些细节,在我的情况下,在我的url结尾处有一个单引号,并没有注意到它,这是导致这个错误。最好的祝福。 – 2017-02-08 23:40:11

+0

这真是太糟糕了:webeditor在https之前添加了一些不可见的空间! : path = https://jsonblob.com ... – 2017-02-10 14:47:46

+1

感谢您节省我的时间!在url之前有一个空格https ... – gonglong 2017-03-18 14:21:10

0

我有这个问题,这是因为在网址空格字符:

' https://www.google.com/recaptcha/api/siteverify' 

,你看到有一个空间之前HTTPS

相关问题