我尝试使用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 我尝试过的事情:
RewriteRule
^api/([a-z][0-9a-z_]+)/?$api.php?type=$1 [QSA,L]
- 无变化
(是的mod重写是开启和工作)任何人都知道如何解决这个问题?我看到有几个线程出现这些错误,但要么没有回答,要么尝试过他们的解决方案,但在这种情况下它不起作用。为什么我在wsdl中的位置不正确?任何帮助都将不胜感激。谢谢!