尝试使用Magento的API时出现肥皂错误

apz*_*000 1 php soap wsdl magento

我正在寻找这个问题的帮助,我希望有人给我这帮助.错误如下:

致命错误:SOAP-ERROR:解析WSDL:无法从"http://example.com/index.php/api/?wsdl"加载:无法加载外部实体"http://example.com/index. php/api /?wsdl"位于第28行的/var/www/presentacion/app/code/local/Pengo/Extension/Model/Something.php

我用来连接它的代码是这样的:

$this->_soap = new SoapClient(http://example.com/index.php/api/?wsdl);
Run Code Online (Sandbox Code Playgroud)

并且它说的是错误.

我一直在谷歌,PHP论坛,在StackOverflow和Magento本身,但我找不到任何解决方案.

我所看到的是,WSDL永远不会被解析或加载,因为错误说明并且没有任何函数.

我试过像这样连接:

$options['location'] = http://example.com/index.php/api/?wsdl;
$options['uri'] = 'urn:Magento';
$this->_soap = new SoapClient(null, $options);
Run Code Online (Sandbox Code Playgroud)

像这样它不会像其他错误那样发送任何错误但是没有要使用的函数,就像在另一种情况下它没有'加载和解析WSDL一样.

我有点沮丧,因为我已经开发了这个像1个月,现在我正在做一些测试它显示这个消息,我测试了它真的是空的,新的,它工作正常.

所以任何帮助将不胜感激.

谢谢.

Ala*_*orm 12

十分之九的错误是Magento告诉你它无法加载WSDL文件. Magento告诉你这个.这不是您的本地客户端代码抱怨.

Magento使用PHP SoapServer对象来创建其SOAP API.该SoapServer对象也需要访问WSDL.尝试从服务器的命令行运行以下命令

curl http://example.com/index.php/api/?wsdl
Run Code Online (Sandbox Code Playgroud)

如果我是对的,以上将超时/失败.

由于DNS中的一些怪癖,服务器无法通过其域名访问自身的情况非常普遍.如果是这种情况,最快的解决方法是在服务器的hosts文件中添加一个条目.(如果没有任何意义,请与您的服务器管理员联系)