Skip to main content
 首页 » 编程设计

python之如何使用 SOAPpy 创建非标准类型

2025年05月04日22lyj

我调用a WSDL web service从 Python 使用 SOAPpy .我需要调用方法 Auth_login .这有 2 个参数 - 第一个是 API key 的字符串;第二个,custom type containing username and password .自定义类型称为 Auth_credentialsData,它包含 2 个值作为字符串 - 一个用于用户名,一个用于密码。如何使用 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) 

两者都给出身份验证失败错误。

请您参考如下方法:

更好的方法是使用 ZSI soap 模块,它允许您获取 WDSL 文件并将其转换为您可以用来调用它的类和方法。联机文档为 on their website但最新的文档更容易在源码包中找到。如果您在 Debian/Ubuntu 中安装(包名称 python-zsi),文档位于/usr/share/doc/python-zsi 中,您可以在其中找到一对 PDF。