在工作中,我必须访问/使用 Channel Advisor API
http://developer.channeladvisor.com/display/cadn/Order+Service
资源:
我正在尝试执行简单的 ping
from suds.client import Client
url = 'https://api.channeladvisor.com/ChannelAdvisorAPI/v4/OrderService.asmx?WSDL'
soap_client = Client(url, location='https://api.channeladvisor.com/ChannelAdvisorAPI/v4/OrderService.asmx')
soap_client.set_options(port='OrderServiceSoap')
#Ping the service
ping = soap_client.service.Ping()
问题:
我收到一条回复,指出我的 SOAP XML 格式错误
请求需要如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://api.channeladvisor.com/webservices/">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<web:Ping/>
</soapenv:Body>
</soapenv:Envelope>
但相反,它看起来像:
<SOAP-ENV:Envelope xmlns:ns0="http://api.channeladvisor.com/webservices/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns0:Ping/>
</ns1:Body>
</SOAP-ENV:Envelope>
我根本没有使用 SOAP 的经验,到目前为止我已经避免了它无尽的实现和复杂性 - 所以请原谅我的无知和缺乏知识,但如果我做错了什么 - 我怎么能得到 python (我们为这类事情选择的语言)与频道顾问 API 一起工作
更新:
*由于我没有收到任何答案,如果/当我找到解决方案时,我会尝试更新每个人(2011 年 3 月 3 日)
我认为部分问题是 SUDS 可能没有正确包含嵌套的 WSDL 文件。