阳光的枇杷 · Integration Services ...· 9 月前 · |
玩命的烤地瓜 · 使用python批量创建mysql表和hiv ...· 10 月前 · |
狂野的鼠标垫 · 将python2.7添加到以基本映像为节点的 ...· 1 年前 · |
爱看书的签字笔 · 5步带你玩转SpringBoot自定义自动配 ...· 1 年前 · |
我想在Python中使用基于WSDL SOAP的web服务。我已经查看了 Dive Into Python 代码,但是SOAPpy模块在Python2.5下不能工作。
我试过使用 suds ,它部分工作,但与某些类型中断(suds.TypeNotFound:类型未找到:'item')。
我还研究了 Client ,但它似乎不支持WSDL。
我看过 ZSI ,但它看起来非常复杂。有没有人有它的示例代码?
WSDL是 https://ws.pingdom.com/soap/PingdomAPI.wsdl ,并且可以与PHP5 SOAP客户机很好地协同工作。
现在(到2008年为止),所有可用于Python的SOAP库都很糟糕。如果可能,我建议避免使用SOAP。上一次我们被迫使用Python中的SOAP web服务时,我们用C#编写了一个包装器,在一端处理SOAP,在另一端使用COM。
这不是真的,SOAPpy不能在Python2.5上工作--它可以工作,尽管它非常简单,而且非常非常基础。如果您想与任何更复杂的any服务对话,ZSI是您唯一的朋友。
我找到的真正有用的演示是在 http://www.ebi.ac.uk/Tools/webservices/tutorials/python 上--这确实帮助我理解了ZSI是如何工作的。
如果你正在开发你自己的应用,我强烈建议你去看看 http://effbot.org/zone/element-soap.htm 。
SOAPpy现在已经过时了,被ZSL取代。这是一个没有意义的问题,因为我无法在Python2.5或Python2.6上运行,更不用说编译了
我建议你去看看 SUDS
"Suds是用于使用Web服务的轻量级SOAP python客户端。“
有一个相对较新的库,它非常有前途,尽管文档仍然很少,但看起来非常干净和pythonic: python zeep 。
另请参阅 this answer 获取示例。
#!/usr/bin/python
# -*- coding: utf-8 -*-
# consume_wsdl_soap_ws_pss.py
import logging.config
from pysimplesoap.client import SoapClient
logging.config.dictConfig({
'version': 1,
'formatters': {
'verbose': {
'format': '%(name)s: %(message)s'
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
'loggers': {
'pysimplesoap.helpers': {
'level': 'DEBUG',
'propagate': True,
'handlers': ['console'],
WSDL_URL = 'http://www.webservicex.net/stockquote.asmx?WSDL'
client = SoapClient(wsdl=WSDL_URL, ns="web", trace=True)
client['AuthHeaderElement'] = {'username': 'someone', 'password': 'nottelling'}
#Discover operations
list_of_services = [service for service in client.services]
print(list_of_services)