- Magento的SOAP API抛出的登录方法调用PHP例外:“看起来我们有没有XML文档”(

2019-08-01 12:22发布

我在连接到通过PHP的SoapClient的Magento的SOAP API的问题。 我有下面的代码我的开发服务器上的一个小测试PHP文件设置:

<?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());

Answer 1:

这个错误通常意味着问题是在服务器端。 服务器处理请求不输出有效的XML。 检查是否有任何错误或重定向发生。

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



Answer 2:

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

为了解决这个问题,我登录到Magento管理面板,导航系统 - >配置 - >网络,并关闭“自动重定向到基本URL”。 就像现在的魅力。



Answer 3:

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

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

一旦重启做了请重新运行你的脚本。



文章来源: Magento SOAP API - PHP Exception thrown for login method call: “looks like we got no XML document”