python调用webservice接口_webservice应用实例

python调用webservice接口_webservice应用实例最近在搞基于python的webservice项目,今天为把环境给配好,折腾了不少时间,还是把配的过程记录下来,以后备用:首先你系统上要有python,这个不必说啦,我系统上用的是2.7+其次,要用python进行webservice开发,还需要一些库:lxml:命令行下sudoeasy_installlxml就能安装pytz:命令行下sudoeasy_installpytz就…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近在搞基于python的webservice项目,今天为把环境给配好,折腾了不少时间,还是把配的过程记录下来,以后备用:

首先你系统上要有python,这个不必说啦,我系统上用的是2.7+

其次,要用python进行webservice开发,还需要一些库:

lxml :

命令行下 sudo easy_install lxml 就能安装

pytz :

命令行下 sudo easy_install pytz 就能安装

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. 完成上面步骤后就能进行webservice发布了,看下helloworld:

直接贴代码:server.py

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 HelloWorldService(DefinitionBase): #this is a web service

@soap(String,_returns=String)    #声明一个服务,标识方法的参数以及返回值

def say_hello(self,name):

return ‘hello %s!’%name

@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__’:

soap_app=soaplib.core.Application([HelloWorldService], ‘tns’)

wsgi_app=wsgi.Application(soap_app)

print ‘listening on 127.0.0.1:7789’

print ‘wsdl is at: http://127.0.0.1:7789/SOAP/?wsdl’

run_twisted( ( (wsgi_app, “SOAP”),), 7789)

if __name__==’__main__’: #发布服务

try:

from wsgiref.simple_server import make_server

soap_application = soaplib.core.Application([HelloWorldService], ‘tns’)

wsgi_application = wsgi.Application(soap_application)

server = make_server(‘localhost’, 7789, wsgi_application)

server.serve_forever()

except ImportError:

print ‘error’

python server.py可以直接运行服务了。运行服务后打开浏览器,地址栏上键入:

http://localhost:7789/SOAP/?wsdl就能看到描述服务的xml文档了。

请求服务:

需要用到suds库:

python交互模式下键入:

from suds.client import Client

test=Client(‘http://localhost:7789/SOAP/?wsdl’)

print test.service.say_hello(‘volador’)

这样就调用了say_hello这个服务了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191146.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 编码转换工具_PDF在线转换工具

    编码转换工具_PDF在线转换工具核心代码:1voidEncodeBase64(unsignedchar*ce,unsignedchar*co)2{3unsignedchar*p;4unsignedi

  • 罗技k580键盘蓝牙连接不上_ipad同时连接蓝牙键盘和耳机

    罗技k580键盘蓝牙连接不上_ipad同时连接蓝牙键盘和耳机K580蓝牙连接,失败解决。

  • 数据结构之ElemType

    数据结构之ElemType数据结构之ElemType也可能写作Elem等,主要是为了定义方便而存在的,一般出现ElemType的代码,都会在代码开头或者引用的文件中有一句typedef数据类型ElemType;的定义。//主要是为了方便,例:以后如果想修改ElemType的类型为long,只需写一句typedeflongElemType;例:typedefintElemType;ElemTypee;…

  • 太极图正确画法_《太极图》的正确画法

    太极图正确画法_《太极图》的正确画法郭凤娟(金玄睿婕)提起太极相信大家都不陌生,都知道太极白的一面代表阳,黑的一面代表阴,白的里面有黑点代表阳中有阴,黑的里面有白点代表阴中有阳。但是太极图的概念真的这么简单浅显吗?下面我来分析一下太极图的文化内涵。《周易》系辞里有一段话:“易有太极,是生两仪,两仪生四象,四象生八卦,八卦定吉凶,吉凶生大业”对于这段话,我们可以称之为演易总纲领。演易总纲的核心、起点、本原、本体是太极。太极是什么?先哲…

  • 卸载Symantec Endpoint Protection, 无需password的卸载方法

    卸载Symantec Endpoint Protection, 无需password的卸载方法

    2021年12月10日
  • finemolds模型_yolo模型训练

    finemolds模型_yolo模型训练在已有模型上finetune自己的数据训练一个模型1、准备训练数据和测试数据2、制作标签3、数据转换,将图片转为LMDB格式前三步的过程和如何利用自己的数据训练一个分类网络是一样的,参考处理即可。4、修改网络模型文件复制/caffe-root/models/finetune_flickr_style文件夹下面的deploy.prototxt…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号