如何用SOAPpy创建非标准类型?
我正在用Python通过SOAPpy调用一个WSDL网络服务。我需要调用的方法是Auth_login。这个方法有两个参数,第一个是一个字符串,代表API密钥;第二个是一个自定义类型,包含用户名和密码。这个自定义类型叫做Auth_credentialsData,里面有两个字符串值,一个是用户名,一个是密码。我该如何用SOAPpy创建这个自定义类型呢?我试过传递列表和字典,但都不行。
到目前为止的代码:
from SOAPpy import WSDL
wsdlUrl = 'https://ws.pingdom.com/soap/PingdomAPI.wsdl'
client = WSDL.Proxy(wsdlUrl)
我尝试了这两种:
credentials = ['email@example.com', 'password']
client.Auth_login('key', credentials)
还有
credentials = {'username': 'email@example.com', 'password': 'passsword'}
client.Auth_login('key', credentials)
但都出现了认证失败的错误。
1 个回答
0
更好的方法是使用ZSI soap模块,这个模块可以让你把一个WDSL文件转换成可以调用的类和方法。你可以在他们的网站上找到在线文档,链接是这里,不过最新的文档在源代码包里更容易找到。如果你在Debian/Ubuntu上安装(包名是python-zsi),文档会在/usr/share/doc/python-zsi目录下,你可以在那找到一对PDF文件。