我一直在尝试使用Python 的suds来调用 SOAP WSDL。我只需要以编程方式调用服务并编写输出 XML 文档。然而 suds 会自动将这些数据解析为它自己的 Python 数据格式。我一直在查看示例和文档,但似乎找不到返回 SOAP 服务给我的 XML 文档的方法。
有没有一种简单的方法可以做到这一点我忽略了?在 Python 中有没有比 suds 更简单的方法呢?
在 suds 开发的早期阶段,获取原始 XML 内容的最简单方法并不是人们所期望的。
该网站上的示例向我们展示了以下内容:
client = Client(url)
result = client.service.Invoke(subm)
然而,结果是一个预解析的对象,它非常适合 Python 访问,但不适用于 XML 文档访问。幸运的是,Client 对象仍然保存着接收到的原始 SOAP 消息。
result = client.last_received()
print result
会给您返回收到的实际 SOAP 消息。
您可以查看诸如soaplib 之类的库:它是一种在 Python 中使用(和提供)SOAP Web 服务的非常好的方法。最新版本有一些代码可以动态地(在运行时)或静态地(针对某些 WSDL 运行脚本)动态生成 Python 绑定。
[免责声明:我是项目的维护者!- 我没有写大部分内容]