python suds call magento api soap v1 Type Not Found Error

时间:2013-11-29 09:37:07

标签: python api magento soap suds

环境:CentOS 6.4 64位,Python 2.6.6,Magento 1.7,Magento Core API,Suds 0.4.1

Python代码:

client = Client(http://   /figol/api/soap/?wsdl)
client.service.login('figol', 'figol123')

错误明细: TypeNotFound:未找到类型:'(数组,http://schemas.xmlsoap.org/soap/encoding/,)

但是 PHP代码:

$client = new SoapClient(http://    /figol/api/soap/?wsdl);
$session = $client->login('figol', 'figol123');

完美地运作。

我尝试了很多方式(SOAP suds and the dreaded schema Type Not Found error),但没有运气。 非常感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

不知道PHP如何工作正常但我在Python中使用suds时遇到了同样的错误。这是由于wsdl / xsd损坏。请参阅this post here

使用suds的'doctor'module解决了这个问题。这是我用于修补用于连接Magento api的破坏的wsdl定义的代码

from suds.client import Client
from suds.xsd.doctor import ImportDoctor, Import

imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('urn:Magento')
d = ImportDoctor(imp)
client = Client(self.url, doctor=d)