如何在Python中使用WSDL(SOAP)Web服务?

时间:2020-03-06 14:32:37  来源:igfitidea点击:

我想在Python中使用基于WSDL SOAP的Web服务。我已经看过Dive Into Python代码,但是SOAPpy模块在Python 2.5下不起作用。

我试过使用部分起作用的suds,但某些类型会中断(suds.TypeNotFound:找不到类型:'item')。

我也查看了Client,但这似乎不支持WSDL。

我看过ZSI,但它看起来非常复杂。有人有任何示例代码吗?

WSDL是https://ws.pingdom.com/soap/PingdomAPI.wsdl,可与PHP 5 SOAP客户端配合使用。

解决方案

现在(截止到2008年),所有可用于Python的SOAP库都变得很烂。我建议尽可能避免使用SOAP。上次我们被迫使用Python中的SOAP Web服务时,我们用C语言编写了一个包装程序,该包装程序一方面处理SOAP,另一方面处理COM。

并非如此,尽管SOAPpy非常简单,而且确实非常基础,但它不适用于Python 2.5. 如果我们想与任何更复杂的Web服务进行对话,则ZSI是我们唯一的朋友。

我发现的真正有用的演示位于http://www.ebi.ac.uk/Tools/webservices/tutorials/python,这确实帮助我了解了ZSI的工作原理。

我知道这是一个旧线程,但是它出现在Google搜索结果的顶部,因此我想分享有关Python和SOAP的最新讨论。

请参阅:http://www.diveintopython.net/soap_web_services/index.html

如果我们要自己动手,我强烈建议我们访问http://effbot.org/zone/element-soap.htm。

SOAPpy现在已过时,已经被ZSL取代了AFAIK。这是有争议的,因为我无法在Python 2.5或者Python 2.6上任一个工作,更不用说编译了。

我建议我们看看SUDS

" Suds是用于使用Web服务的轻量级SOAP python客户端。"