在 Python 中正确使用 SOAP - NULL 参数错误

Proper use of SOAP in Python - NULL parameter error

如果我的术语有误,请告诉我 - 我一直在做很多函数式编程,而不是很多(我认为是)Webdev 的东西。

我发现在 Python 中使用 SOAP 真的很困难 - 我找不到似乎适用于我正在尝试的特定 API 的用法示例(用于语法参考)访问。基本上,我不确定我的语法是否错误,或者我尝试使用的 API 是否有问题。

我的看起来像:

from SOAPpy import WSDL

server = WSDL.Proxy("https://some.example.of.a.remote.API")
results = server.MethodWithFourArguments("mike.hunt", "love", "12345", "RCP-90")

print results

我的遥控器 API 的文档说它需要字符串用户名、密码、发票编号和 SKU 编号作为 "MethodWithFourArguments" 方法的参数。

问题是我从远程 API 收到 "Username was NULL" 作为响应。

我试过将参数格式化为列表、散列,甚至将它们指定为 utf,并在字符串前加上 Python "u"。

我做错了什么吗?

经过反复试验,我发现我需要使用模块"suds"。我能够使用 "pip install suds" 安装它,以下是有效的:

import suds.client import Client

WSDL="https://some.example.of.a.remote.API"

client = Client(WSDL)
results = client.service.MethodWithFourArguments("mike.hunt", "love", "12345", "RCP-90")

print results

我正在使用的 API 非常简单 - 我只需要知道 "SOAPpy" 已弃用 and/or 不工作并改用 "suds"。