打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python之soap(soaplib(server),suds(client))

如何用python实现soap协议并搭建webservice

0?2

网上搜索了一番,用python实现soap的库有好几个,soappy,soaplib,suds等。但是SOAPpy这个库已经好几年没人去维护更新了,所以不予考虑,而suds这个库用来构建soap服务端比较麻烦,所以最终锁定soaplib来实现服务端发布,而用suds实现客户端获取;

0?2

第一步:安装soaplib

0?2

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/下

0?2

0?2 ?0?2 * 想要运行soaplib还必须依赖 libxml2及libxslt这二个包;google后总结以下安装过程

0?2

第二步:安装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

0?2?0?2 ?0?2

0?2 ?0?2 * 当一切都没有错的时候,你会在/usr/local里看到生成一个libxml2的文件夹

0?2

第三步:安装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

0?2?0?2 ?0?2

0?2 ?0?2 * 当一切都没有错的时候,你会在/usr/local里看到生成一个libxslt的文件夹

0?2

第四步:复制文件

写道
将libxml2及libxslt文件夹复制到soaplib文件夹下,即/usr/local/lib/python2.6/dist-packages/soaplib-0.8.1-py2.6.egg/soaplib

0?2

0?2 ?0?2 至此,你可以使用soaplib开始来发布你的webservice了

0?2

0?2 ?0?2 . 下面是一个简单的'hello world'的server.py及client.py

#server.pyfrom soaplib.service import soapmethodfrom soaplib.serializers.primitive import String, Integer, Arrayfrom soaplib.wsgi_soap import SimpleWSGISoapApp   class HelloWorldService(SimpleWSGISoapApp):    @soapmethod(String, _returns=String)    def says(self,name):             return nameif __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"

0?2

0?2

0?2 ?0?2 . soaplib实现client

#client.pyfrom server import HelloWorldServicedef 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') 

0?2

0?2 ?0?2

0?2 ?0?2. 下面看看suds如何实现client

0?2 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/下

0?2

#client.pyfrom suds.client import Clienturl = "http://192.168.0.219:7889?wsdl"client = Client(url)print client.service.says('hello world')

0?2

0?2

0?2 . 通过比较可以看出,用suds更简洁更方便,

0?2 .https://fedorahosted.org/suds/wiki/Documentation

0?2

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SOAP for Python [知识库]
RobotFrameWork WebService Soap接口测试 (一)
python接口自动化41-suds测试webservice接口
基于Termux打造Android手机渗透神器
安卓手机运行python程序的软件:Termux、Pydroid3
Python unicode解码错误SUD
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服