2012-10-16 23 views
1

我遇到了通过PHP的SoapClient连接到Magento SOAP API的问题。我有我的开发服务器上用下面的代码进行小试,PHP文件设置:Magento SOAP API - 针对登录方法调用抛出的PHP异常:“看起来像我们没有XML文档”

<?php 
$soapC = new SoapClient('http://XXXX.com/api/soap/?wsdl', array('trace'=>true, 'exceptions'=>false)); 
$session = $soapC->__soapCall('login', array('TestUsr', 'test123')); 
var_dump($session); 
?> 

的PHP文件是在同一台服务器作为我的Magento的开发建设上。当我通过命令行运行php脚本时,$ session变量输出一个SoapFault对象,其中有一个错误,表示“看起来像我们没有XML文档”。

不知道如何解决这个问题。当我尝试下面的代码时,我可以打印出所有的API方法,但由于某种原因,上面的登录方法调用导致了问题。

$soapC = new SoapClient('http://XXXX.com/api/soap/?wsdl', array('trace'=>true, 'exceptions'=>false)); 
print_r($soapC->__getFunctions()); 

回答

1

我意识到问题是,当服务器试图访问的WSDL文件,Magento的正发出302重定向到店面。

要解决它,我登录到Magento管理面板,导航系统 - >配置 - >网络,并关闭“自动重定向到基本URL”。现在就像魅力一样。

3

此错误通常表示问题出现在服务器端。处理请求的服务器不输出有效的XML。检查是否没有错误或重定向发生。

如果您在浏览器中访问服务器端点会发生什么?

+0

是的,wsdl文件加载在浏览器中很好,我没有看到任何错误出现在错误日志中。 – Rena

+2

你的WSDL应该有类似的东西; ''。这是您需要访问的网址。如果仍然没有问题,可以发布一个链接到你的WSDL? – tantricllama

+0

感谢您对此的帮助。原来有一个302重定向阻止了wsdl的到达。 – Rena

0

从远程服务器或本地服务器打开的php.ini文件,并设置always_populate_raw_post_data-1

之后,你需要重新启动你的Apache服务器。

重新启动后,请重新运行您的脚本。

相关问题