2011-11-04 53 views
3

我想通过使用SUDS库的Python脚本访问一个非常简单的SOAP Web服务。如何使用Python/SUDS将键/值对发送到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服务期望的键/值对发送。

我非常感谢你们提供的帮助。

回答

2

首先,你可以使用的测井方法:

client.last_received() 
client.last_sent() 

这些都将输出XML泡沫正在发送。

也如果打印客户端

print client 

你会看到是否有与业务相关的任何复杂类型,我的猜测是,键值将是一个类型,你将不得不使用创建:

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

该信息应该帮助你的方式。

奥利