Magento SOAP API:wsdl soap:地址位置不正确

时间:2015-05-18 13:34:09

标签: api magento soap wsdl

我尝试使用SOAP API v2连接到Magento实例,虽然我在浏览器中访问http://www.domain.loc/api/v2_soap?type=soap&wsdl=1时可以看到wsdl,但我无法执行login()调用,总会抛出错误。

代码:

$options = array(
    'trace' => 1,
    'cache_wsdl' =>  WSDL_CACHE_NONE,
    //'location' =>   'http://www.domain.loc/index.php/api/v2_soap?wsdl=1',
    'soap_version' => SOAP_1_2,
    'connection_timeout' => 120,
    'exception' => 0,
    'encoding' => 'utf-8',
);
try {

    $client = new soapClient('http://www.domain.loc/api/v2_soap?type=soap&wsdl=1', $options);
    $client->login('username', 'password');
    //$result = $client->catalogProductList($sessionId);
    //$result = $client->call($session, 'catalog_product.list');
    var_dump($client);

} catch (SoapFault $e) {
    var_dump($e);
}

哪个收益" SoapFault:看起来我们没有XML文档" 当我取消注释位置选项时,我得到了#34; SoapFault:错误的版本" 当我查看wsdl文件时,我看到soap:地址位置设置为

<port name="Mage_Api_Model_Server_HandlerPort" binding="typens:Mage_Api_Model_Server_HandlerBinding">
<soap:address location="http://www.domain.loc/index.php/?SID=7o7mn7iiu9tr8u1b9163r305d4dp1l1jrcn1hmnr34utgnhgb6i0&type=soap"/>

这似乎不正确,因为它是主页的URL,带有SID和查询参数。

Magento版本EE1.14 我尝试过的事情:

  • 禁用本地模块 - 无需更改
  • 使用Zend_Soap_Client - 无变化
  • 各种不同的网址配置 - 尝试了所有内容 太阳,没有变化
  • 使用SOAP v1 - 结果相同
  • 尝试在远程实例上使用它而不是我的本地 - 同样 结果
  • 已检查phpinfo - 是否已安装SOAP
  • 尝试调试 - 当我打开Xdebug并运行我的测试脚本时 似乎阻止脚本甚至运行。浏览器就好 表示永远加载
  • 尝试取消注释.htaccess中的行以重写RewriteRule ^api/([a-z][0-9a-z_]+)/?$api.php?type=$1 [QSA,L] - 无变化 (是的mod重写是开启和工作)
  • 尝试获取wsdl并在本地保存并将其传递给SOAP 客户端构造函数 - 没有更改

任何人都知道如何解决这个问题?我看到有几个线程出现这些错误,但要么没有回答,要么尝试过他们的解决方案,但在这种情况下它不起作用。为什么我在wsdl中的位置不正确?任何帮助都将不胜感激。谢谢!

0 个答案:

没有答案