如何使用 Python/SUDS 将键/值对发送到 Web 服务?

发布于 2024-12-13 11:03:25 字数 534 浏览 2 评论 0原文

我正在尝试使用 SUDS 库通过 Python 脚本访问非常简单的 SOAP Web 服务。

这是 WSDL 正文:

sample wsdl

我用来提交这两个键/值对的 Python 代码如下:

url = "http://somewhereontheweb.com/WS.asmx?wsdl"
client = suds.client.Client(url)

try:
    result = client.service.SendKDIRequest({"Key1": value1, "Key2": value2})    
    #display success
except Exception as e:  
    #display error

将它们直接输入到 SoapUI 客户端表明该服务工作正常。所以我很确定我没有按照 Web 服务期望的方式发送键/值对。

我真的很感激你们能提供的任何帮助。

I'm trying to access a really simple SOAP web service via Python script using the SUDS library.

Here's the WSDL body:

sample wsdl

The python code I'm using to submit these two key/value pairs is as follows:

url = "http://somewhereontheweb.com/WS.asmx?wsdl"
client = suds.client.Client(url)

try:
    result = client.service.SendKDIRequest({"Key1": value1, "Key2": value2})    
    #display success
except Exception as e:  
    #display error

Entering them directly into the SoapUI client suggests that the service is working correctly. So I'm pretty sure I'm not sending through the key/value pairs as the web service expects them.

I'd really appreciate any help you guys can provide.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我做我的改变 2024-12-20 11:03:26

首先,您可以使用以下日志记录方法:

client.last_received()
client.last_sent()

这些方法将输出正在发送的 xml suds。

另外,如果您打印客户端,

print client

您将看到是否有与该服务关联的任何复杂类型,我的猜测是 KeyValue 将是您必须使用创建的类型:

kv = client.factory.create("ns0:KeyValue")

该信息应该对您有所帮助。

奥利

firstly you can use the logging methods of :

client.last_received()
client.last_sent()

these will output the xml suds is sending.

also if you print the client

print client

you will see if there are any complex types associated with the service, my guess is that KeyValue will be a type you will have to create using :

kv = client.factory.create("ns0:KeyValue")

that info should help you on your way.

Olly

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文