Python有哪些SOAP客户端库,它们的文档在哪里?

2024-04-23 18:05:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前从未使用过SOAP,我对Python有点陌生。我这样做是为了让自己熟悉这两种技术。我已经安装了SOAPlib,并试图阅读他们的Client文档,但我不太理解。还有什么我可以研究的更适合作为Python的SOAP客户端库吗?

编辑:为了以防万一,我正在使用Python2.6。


Tags: 文档client编辑客户端soap技术soaplib陌生
3条回答

我听从了这个问题其他答案的建议,试了一下。在“愤怒地”使用它之后,我必须同意:泡沫是非常好的!强烈推荐!

我在从代理后面调用基于HTTPS的web服务时遇到了问题。在编写本文时,这会影响使用urllib2的所有Python web服务客户机,因此我将在这里记录解决方案。

python 2.6.2及以下版本附带的urllib2模块不会通过HTTP代理会话向HTTPS代理发出CONNECT。这会导致长时间超时,或者如果幸运的话,会出现如下错误:

abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

这是Python bug tracker上的issue1424152。在Python 2.x和Python 3.x中,错误报告中附加了一些修补程序来解决这个问题。问题已经解决了

我对肥皂水有很好的经验 https://fedorahosted.org/suds

使用他们的测试套件作为文档。

更新(2016年):

如果您只需要SOAP客户机,那么有一个维护良好的库,名为zeep。它同时支持Python 2和3:)


更新:

除上述内容外,我还将参考Python WebServices页面,该页面始终是最新的,包含所有主动维护和推荐的SOAP模块以及所有其他webservice类型。


不幸的是,目前,我认为还没有“最好的”Python SOAP库。现有的主流方案各有利弊。

旧库:

  • SOAPy:是“最好的”,但不再保持。不适用于Python2.5+

  • ZSI:使用起来很痛苦,而且开发很慢。有一个名为“SOAPpy”的模块,它与SOAPy(上面)不同。

“较新”库:

  • SUDS:非常Pythonic,而且很容易创建使用WSDL的SOAP客户机。创建SOAP服务器有点困难。(此软件包不适用于Python3。Python3见SUDS-py3)

  • SUDS-py3:Python3版本的SUDS

  • spyne:创建服务器很简单,创建客户端有点困难。文件有点缺乏。

  • ladon:创建服务器非常类似于soaplib(使用decorator)。Ladon同时公开了比SOAP更多的接口,而不需要额外的用户代码。

  • pysimplesoap:非常轻量级,但对客户机和服务器都很有用-包括web2py附带的web2py服务器集成。

  • SOAPpy:与上面ZSI链接中托管的废弃SOAPpy不同,这个版本实际上一直维护到2011年,现在似乎也被废弃了。
  • soaplib:易于使用python库编写和调用soap web服务。使用soaplib编写的Webservices简单、轻量级,与其他SOAP实现很好地协同工作,并且可以作为WSGI应用程序部署。
  • osa:一个快速/精简的易于使用的SOAP python客户端库。

以上这些,我只亲自用过肥皂水,我很喜欢。

相关问题 更多 >