由于"无法加载外部实体",无法连接到Magento SOAP API v2

use*_*395 20 php soap wsdl magento

我无法使用PHP连接到Magento SOAP API v2.发生的错误是:

PHP致命错误:未捕获的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');
Run Code Online (Sandbox Code Playgroud)

从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>
Run Code Online (Sandbox Code Playgroud)

Magento版本是1.5.1.0.

use*_*395 7

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