繁体   English   中英

有哪些针对Python的SOAP客户端库,它们的文档在哪里? [关闭]

[英]What SOAP client libraries exist for Python, and where is the documentation for them? [closed]

我以前从未使用过SOAP ,而且对Python还是有点陌生​​。 我这样做是为了使自己熟悉这两种技术。 我已经安装了SOAPlib,并尝试阅读其Client文档,但是我不太了解它。 我还有什么可以寻找的更适合用作Python的SOAP客户端库的东西吗?

编辑:以防万一,我正在使用Python 2.6。

更新(2016):

如果只需要SOAP客户端,则有一个维护良好的库,称为zeep 它同时支持Python 2和3 :)


更新:

除了上面提到的内容之外,我还将参考Python WebServices页面,该页面始终是最新的,其中包含针对SOAP和所有其他Webservice类型的所有活动维护和推荐的模块。


不幸的是,目前,我认为没有“最好的” Python SOAP库。 每种主流产品都有其优点和缺点。

较旧的库:

  • SOAPy :是“最佳”的,但不再维护。 在Python 2.5+上不起作用

  • ZSI :使用起来非常痛苦,并且开发速度很慢。 有一个名为“ SOAPpy”的模块,该模块不同于SOAPy(上述)。

“较新的”库:

  • SUDS :非常Pythonic,易于创建消耗WSDL的SOAP客户端。 创建SOAP服务器要困难一些。 (此软件包不适用于Python3。有关Python3,请参见SUDS-py3)

  • SUDS-py3SUDS的Python3版本

  • spyne :创建服务器很容易,创建客户端要困难一些。 缺少文档。

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

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

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

其中,我只是个人使用SUDS,我非常喜欢它。

我遵循了对该问题的其他答案的建议,并尝试了SUDS 在“愤怒”使用它之后,我必须同意:SUDS非常好! 强烈推荐!

我确实从代理后面调用基于HTTPS的Web服务时遇到麻烦。 在撰写本文时,这会影响所有使用urllib2 Python Web服务客户端,因此我将在此处记录该解决方案。

python 2.6.2及更低版本附带的urllib2模块不会针对HTTPS-over-HTTP-proxy会话向代理发出CONNECT 这会导致超时,或者如果您很幸运,则会出现类似以下的错误:

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

这是Python错误跟踪器上的issue1424152 错误报告附带有补丁程序,可在Python 2.x和Python 3.x中修复此问题。 这个问题已经解决

我在SUDS https://fedorahosted.org/suds上有很好的经验

使用他们的TestSuite作为文档。

SUDS是必经之路,毫无疑问。

只是针对查看SUDS的人员提供的FYI警告,在此票证解决之前,SUDS不支持WSDL中的“ choice”标签:

https://fedorahosted.org/suds/ticket/342

请参阅: 泡沫和选择标签

SUDS易于使用,但不能保证可以重入。 如果要在线程化应用程序中保留WSDL Client()对象以提高性能,则存在一定的风险。 此风险的解决方案clone()方法引发了不可恢复的Python 5508错误,该错误似乎可以打印,但并未真正引发异常。 可能会造成混淆,但是可以。 到目前为止,它仍然是最好的Python SOAP客户端。

我们发布了一个新的库: PySimpleSOAP ,它为简单而功能强大的客户端/服务器提供支持。 它的目标是:易用性和灵活性(不需要类,不需要自动生成的代码或xml),WSDL内省和生成,符合WS-I标准,兼容性(包括Java AXIS,.NET和Jboss WS)。 它包含在Web2Py中以启用完整堆栈解决方案(补充其他受支持的协议,例如XML_RPC,JSON,AMF-RPC等)。

如果有人正在学习SOAP或想对其进行调查,那么我认为这是一个不错的选择。

我相信soaplib已弃用其SOAP客户端(“发送者”),而改为使用肥皂水。 在这一点上,soaplib致力于成为一个与Web框架无关的SOAP服务器(“接收器”)。 当前soaplib正在积极开发中,通常在Python SOAP邮件列表中进行讨论:

http://mail.python.org/mailman/listinfo/soap

正如我在这里建议的那样我建议您自己滚动。 实际上并不是那么困难,我怀疑这就是那里没有更好的Python SOAP库的原因。

我的结论是:

肥皂客户端:

使用 Suds-jurko (2016年更新)可以很好地维护和更新泡沫。

更新06/2017:suds -jurko库未更新, 显然已被放弃

我测试ZEEP库,但得到周围令牌的限制,现在只支持用户名令牌,我报告一个错误创建时间戳标记和作者更新的代码来修复它。

Zeep的启动良好,并且具有良好的文档 ,因此我最近将代码从suds迁移到了zeep,并且运行良好。

肥皂服务器端:

\n

我们有TGWS,soaplib(未经测试的pysimplesoap)恕我直言使用,并且必须选择soaplib帮助。

最好的祝福,

泡沫非常好。 我尝试了SOAPpy,但没有按照我需要的方式正常工作,而肥皂水却很快就起作用了。

能否提供帮助: http : //users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

我是通过搜索wsdlpython找到它的, wsdl的是,您需要对SOAP服务器进行wsdl描述才能进行任何有用的客户端包装程序。

我们使用了Python Web Services的 SOAPpy,但似乎ZSI(相同的源)正在取代它。

我在生产环境中将SOAPpy与Python 2.5.3结合使用。

我不得不在SOAPpy中手动编辑几个文件(关于标头代码放置在错误的位置),但除此之外,它仍然可以正常工作并且继续非常可靠地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM