php - 由于 "failed to load external entity"无法连接到 Magento SOAP API v2

标签 php soap magento wsdl

我无法使用 PHP 连接到 Magento SOAP API v2。出现的错误是:

PHP fatal error :未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR:解析 WSDL:无法从“http://www.example.com/index.php/api/v2_soap/index/wsdl/1/ 加载” ' : 未能加载外部实体“http://www.example.com/index.php/api/v2_soap/index/wsdl/1/

看起来,WSDL 正在加载,但它包含的外部 SOAP 文件没有。


PHP连接代码:

$client = new SoapClient('http://www.example.com/api/v2_soap?wsdl=1');
$session = $client->login('username', 'password');

从 v2_soap?wsdl=1 文件中截取:

<service name="MagentoService">
    <port name="Mage_Api_Model_Server_V2_HandlerPort" binding="typens:Mage_Api_Model_Server_V2_HandlerBinding">
        <soap:address location="http://www.example.com/index.php/api/v2_soap/index/"/>
    </port>
</service>

Magento 版本是 1.5.1.0

最佳答案

此问题是由于服务器无法从本地计算机访问文件引起的。所以可能的原因可能是 DNS 服务器或/etc/hosts,但它实际上是一个 .htaccess 文件,它阻止了除我们的开发计算机之外的任何主机。这导致了 403 Forbidden 错误,进而导致 SOAP 错误等等..

关于php - 由于 "failed to load external entity"无法连接到 Magento SOAP API v2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6454644/

相关文章:

java - SOAP 和 Spring

wcf - 如何从现有 WCF 服务创建单个 WSDL 文件?

xml - 将自定义字段添加到 paypal 模块 magento 1.9

mysql - 支付操作失败后,如何在 Magento 中禁用 MySQL 查询回滚?

php - MediaWiki 自定义皮肤 : check if current page is main page

php - PHP 与 Javascript 中 MT 实现中相同种子的不同输出

java - 带有 JWS 的 xsd 注释

php - Zend : How to log PHP errors

javascript - 如何从 PHP 获取 deflate 数据到 Javascript

php - Magento 购物车放弃从哪里开始?