加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

利用soaplib搭建webservice详细步骤和实例代码

发布时间:2020-12-16 21:47:27 所属栏目:安全 来源:网络整理
导读:要用python进行webservice开发,还需要一些库: lxml : 命令行下 sudo easy_install lxml 就能安装 pytz : ? 命令行下 sudo easy_install pytz 就能安装 Twisted : ? 命令行下 sudo easy_install Twisted 就能安装 soaplib: 进行webservice开发必须要用
要用python进行webservice开发,还需要一些库:

lxml :
命令行下 sudo easy_install lxml 就能安装

pytz :
?命令行下 sudo easy_install pytz 就能安装

Twisted
?命令行下 sudo easy_install Twisted 就能安装


soaplib:
进行webservice开发必须要用的库,可以在https://github.com/volador/soaplib拿到,注意要先安装上面两个插件再安装这个,因为这个依赖于上面两个插件,把zip拿下来后解压,sudo python setup.py install 就能安装了。

?

复制代码 代码如下:

Soaplib is an easy to use python library for publishing soap web services using WSDL 1.1 standard,and answering SOAP 1.1 requests. With a very small amount of code,soaplib allows you to write a useful web service and deploy it as a WSGI application.

?

soaplib是python的soap框架,可以用来建立webservice.soaplib这样在这里下载:https://github.com/volador/soaplib

装好soaplib后新建一个test.py,建立一个webservice,实现返回两个整数相加的和。代码如下:

?

复制代码代码如下:

# -*- coding: cp936 -*-
import soaplib
from soaplib.core.util.wsgi_wrapper import run_twisted #发布服务
from soaplib.core.server import wsgi
from soaplib.core.service import DefinitionBase? ?#所有服务类必须继承该类
from soaplib.core.service import soap? ?#声明注解
from soaplib.core.model.clazz import Array #声明要使用的类型
from soaplib.core.model.clazz import ClassModel? ?#若服务返回类,该返回类必须是该类的子类
from soaplib.core.model.primitive import Integer,String
class C_ProbeCdrModel(ClassModel):
? ? ? ? ? ? ? ?__namespace__ = "C_ProbeCdrModel"
? ? ? ? ? ? ? ?Name=String
? ? ? ? ? ? ? ?Id=Integer
class AdditionService(DefinitionBase):? ?#this is a web service? ? ? ? ? ?
? ? ? ? ? ? ? ?@soap(Integer,Integer,_returns=String)
? ? ? ? ? ? ? ?def addition(self,a,b):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return str(a)+'+'+str(b)+'='+str(a+b)? ? ? ? ? ? ?
? ? ? ? ? ? ? ?@soap(_returns=Array(String))
? ? ? ? ? ? ? ?def GetCdrArray(self):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?L_Result=["1","2","3"]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return L_Result
? ? ? ? ? ? ? ?@soap(_returns=C_ProbeCdrModel)
? ? ? ? ? ? ? ?def GetCdr(self): #返回的是一个类,该类必须是ClassModel的子类,该类已经在上面定义
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?L_Model=C_ProbeCdrModel()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?L_Model.Name=L_Model.Name
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?L_Model.Id=L_Model.Id
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return L_Model? ? ? ?

? ? ? ? ? ? ? ?
if __name__=='__main__':? ?#发布服务? ? ? ? ? ? ?
? ? ? ? ? ? ? ?try:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print '服务已经开启'
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?from wsgiref.simple_server import make_server
? ? ? ? ? ? ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读