如何使用SOAPpy创建非标准类型?
时间:2020-03-06 14:34:26 来源:igfitidea点击:
我正在使用SOAPpy从Python调用WSDL Web服务。我需要进行的调用是Auth_login方法。它有两个参数,第一个是字符串,是API密钥;第二个是字符串。第二种是包含用户名和密码的自定义类型。自定义类型称为Auth_credentialsData,其中包含2个值作为字符串,一个为用户名,一个为密码。如何使用SOAPpy创建此自定义类型?我尝试传递一个列表和一个字典,但都不起作用。
到目前为止的代码:
from SOAPpy import WSDL wsdlUrl = 'https://ws.pingdom.com/soap/PingdomAPI.wsdl' client = WSDL.Proxy(wsdlUrl)
都尝试过:
credentials = ['[email protected]', 'password'] client.Auth_login('key', credentials)
和
credentials = {'username': '[email protected]', 'password': 'passsword'} client.Auth_login('key', credentials)
两者都给出身份验证失败错误。
解决方案
更好的方法是使用ZSI soap模块,该模块允许我们获取WDSL文件并将其转换为可用于调用它的类和方法。在线文档位于其网站上,但是最新的文档在源代码包中更容易找到。如果我们安装在Debian / Ubuntu(软件包名称为python-zsi)中,则该文档位于/ usr / share / doc / python-zsi中,其中包含一对PDF。