我在本地机器上安装了magento 1.6.1我试图使用以下代码在php中连接magetno \'s api
$proxy = new SoapClient('http://localhost/magento/api/v2_soap/?wsdl');
$sessionId = $proxy->login('apiuser', 'apikey');
如果互联网连接打开,我可以使用此代码连接,如果我将其关闭则不起作用。 它给出了以下错误
Warning: SoapClient::SoapClient() [soapclient.soapclient]: php_network_getaddresses: getaddrinfo failed: No such host is known. in E:\wamp\www\magentomanager\api\products.php on line 12
Warning: SoapClient::SoapClient(http://schemas.xmlsoap.org/soap/encoding/) [soapclient.soapclient]: failed to open stream: php_network_getaddresses: getaddrinfo failed: No such host is known. in E:\wamp\www\magentomanager\api\products.php on line 12
请让我知道背后的原因是什么? 为什么magento需要互联网连接才能访问本地API。如何在没有互联网连接的情况下访问api?
答案 0 :(得分:2)
Magento的API基于SOAP,您可能已经发现了。 SOAP基于XML并使用该模式文件,这些文件描述了此服务的SOAP调用的模式/布局。因此,可以在每次SOAP调用之前/之后加载此文件。
但是,工作量可能是将架构描述存储在本地计算机上并编辑Magento的wsdl.xml文件,以便它们引用本地计算机。只需在Magento安装中的所有xml文件中搜索URL。
不是一个非常好的解决方法,但是,嘿,......这是一种解决方法。
答案 1 :(得分:0)
我认为问题是localhost无法解析为本地IP或127.0.0.1。您可以将其添加到主机文件中,也可以通过http:///而不是http://localhost
进行调用