设为首页 收藏本站
查看: 696|回复: 0

[经验分享] python之soap(soaplib(server),suds(client))

[复制链接]

尚未签到

发表于 2017-4-30 10:12:41 | 显示全部楼层 |阅读模式
  如何用python实现soap协议并搭建webservice
  网上搜索了一番,用python实现soap的库有好几个,soappy,soaplib,suds等。但是SOAPpy这个库已经好几年没人去维护更新了,所以不予考虑,而suds这个库用来构建soap服务端比较麻烦,所以最终锁定soaplib来实现服务端发布,而用suds实现客户端获取;
  第一步:安装soaplib
  http://pypi.python.org/pypi/soaplib/0.8.1

写道

安装挺简单的:下载后解压进入到目录soaplib-0.8.1,
--> sudo python setup.py install即可
安装后在我本机的路径是在:/usr/local/lib/python2.6/dist-packages/下
  * 想要运行soaplib还必须依赖 libxml2及libxslt这二个包;google之后总结以下安装过程
  第二步:安装libxml2

写道

1. wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.7.8.tar.gz
2. tar -xvzf libxml2-sources-2.7.8.tar.gz
3. cd libxml2-2.7.8
4. ./configure --prefix=/usr/local/libxml2
5. make
6. sudo make install
  * 当一切都没有错的时候,你会在/usr/local里看到生成一个libxml2的文件夹
  第三步:安装libxslt

写道

1. wget ftp://xmlsoft.org/libxslt/libxslt-1.1.26.tar.gz
2. tar -xvzf libxslt-1.1.26.tar.gz
3. cd libxslt-1.1.26
4. ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2/
5. make
6. sudo make install
  * 当一切都没有错的时候,你会在/usr/local里看到生成一个libxslt的文件夹
  第四步:复制文件

写道

将libxml2及libxslt文件夹复制到soaplib文件夹下,即/usr/local/lib/python2.6/dist-packages/soaplib-0.8.1-py2.6.egg/soaplib
  至此,你可以使用soaplib开始来发布你的webservice了
  . 下面是一个简单的'hello world'的server.py及client.py

#server.py
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array
from soaplib.wsgi_soap import SimpleWSGISoapApp
class HelloWorldService(SimpleWSGISoapApp):
@soapmethod(String, _returns=String)
def says(self,name):     
return name

if __name__=='__main__':
try:
from wsgiref.simple_server import make_server
server = make_server('192.168.0.219', 7889, HelloWorldService())
print "listening on 0.0.0.0:7889"
server.serve_forever()
except ImportError:
print "Error: example server code requires Python >= 2.5"
  . soaplib实现client

#client.py
from server import HelloWorldService
def make_client():
from soaplib.client import make_service_client
client = make_service_client('http://192.168.0.219:7889', HelloWorldService())
return client   
a = make_client()   
print a.says('hello,world')
  . 下面看看suds如何实现client
  https://fedorahosted.org/releases/s/u/suds/python-suds-0.4.tar.gz

写道

安装也同soaplib很简单,解压进入目录,--> sudo python setup.py install即可
安装后在我本机的路径是在:/usr/local/lib/python2.6/dist-packages/下

#client.py
from suds.client import Client
url = "http://192.168.0.219:7889?wsdl"
client = Client(url)
print client.service.says('hello world')
  . 通过比较可以看出,用suds更简洁更方便,
  .https://fedorahosted.org/suds/wiki/Documentation

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-371095-1-1.html 上篇帖子: python实现的单子模式(附解释) 下篇帖子: python中日志配置与使用[1]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表