python使用suds来调用webservice
对于python仅作为客户端调用webservice的情况,推荐使用suds库来完成,比起zsi,soapy之类,它可以说是相当轻量级,使用非常方便。
安装suds建议使用easy_insall来做。下面是官方的一些例子:
Python代码
from suds.client import Client url = 'http://localhost:7080/webservices/WebServiceTestBean?wsdl' client = Client(url) #查看该service提供的方法 print client Suds - version: 0.3.3 build: (beta) R397-20081121 Service (WebServiceTestBeanService) tns="http://test.server.enterprise.rhq.org/" Prefixes (1): ns0 = "http://test.server.enterprise.rhq.org/" Ports (1): (Soap) Methods: addPerson(Person person, ) echo(xs:string arg0, ) getList(xs:string str, xs:int length, ) getPercentBodyFat(xs:string name, xs:int height, xs:int weight) getPersonByName(Name name, ) hello() testExceptions() testListArg(xs:string[] list, ) testVoid() updatePerson(AnotherPerson person, name name, ) Types (23): Person Name Phone AnotherPerson
1.简单参数调用
Python代码
result = client.service.getPercentBodyFat('jeff', 68, 170) print result result = client.service.getPercentBodyFat(name='jeff', height=68, weight=170) print result #词典 d = dict(name='jeff', height=68, weight=170) result = client.service.getPercentBodyFat(**d) print result You have 21% body fat.
2.复杂参数
Java代码
person = client.factory.create('Person') print person
Java代码
(Person)= { phone = [] age = NONE name(Name) = { last = NONE first = NONE } }
#设置变量
Java代码
phone = client.factory.create('Phone') phone.npa = 202 phone.nxx = 555 phone.number = 1212
Python代码
name = client.factory.create('Name') name.first = 'Elmer' name.last = 'Fudd'
Python代码
person.name = name person.age = 35 person.phone = [phone] #或者 person.phone.append(phone)
Java代码
try: person_added = client.service.addPerson(person) except WebFault, e: print e
在0.3.8以上版本还提供了更简单的调用方式,完美的json
Python代码
person = {} #根据对象结构构造json phone = { 'npa':202, 'nxx':555, 'number':1212, } name = { 'first':'Elmer', 'last':'Fudd' } person['name'] = name person['age'] = 35 person['phone'] = [phone,] try: person_added = client.service.addPerson(person) except WebFault, e: print e
3.异常处理
Python代码
client = client(url, faults=False) result = client.service.addPerson(person) print result ( 200, person ...)
更多可以查看官方文档:https://fedorahosted.org/suds/wiki/Documentation,里面还讲了soap头得安全认证,webservice cache等高级话题,有需要可以查看,都比较详细。
转载于:https://www.cnblogs.com/dancesir/p/7927420.html
python使用suds来调用webservice相关推荐
- python调用webservice_python使用suds来调用webservice
对于python仅作为客户端调用webservice的情况,推荐使用suds库来完成,比起zsi,soapy之类,它可以说是相当轻量级,使用非常方便. 安装suds建议使用easy_insall来做. ...
- Python 调用WebService接口出错-suds.transport.TransportError: HTTP Error 401: Unauthori
使用Python调用WebService接口出现"suds.transport.TransportError: HTTP Error 401: Unauthorized"错误. 问 ...
- python suds_python使用suds调用webservice接口的方法
最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds mac: sudo pip in ...
- python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...
python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...
- python调用webservice
python调用webservice的两种方法 suds调用 requests调用 因为工作关系,长期对接各种三方的接口(视图,webservice,队列).期间遇见了各种报错,也查阅了许多资料,特此 ...
- Python调用WebService服务 查询天气预报
文章目录 问题描述 安装 初试 修复Schema 天气预报封装 参考文献 问题描述 Python调用Webservice服务,如WebXml的免费Web服务中的城市天气预报 安装 使用suds库的分支 ...
- Python调用webservice服务【suds-py3组件使用】
先记录一下背景: 工作中一次与其他系统进行接口调用调试时,对方提供了webservice的一套服务文档和调用参数说明.what?webservice?没怎么用过,以为和API形式的调用差不多,但基于尊 ...
- 使用suds-py3调用webservice WSDL接口
使用suds-py3调用webservice WSDL接口 应用场景:我们需要通过Python调用webservice的接口,这需要使用到第三方库suds,这篇文章介绍使用suds-py3调用webs ...
- EJBCA 6 通过调用WebService接口增加用户并获取证书
2019独角兽企业重金招聘Python工程师标准>>> 今天终于搞定通过调用WebService 接口的方式在EJBCA 中增加用户. 本项目完整代码请参见http://git.os ...
最新文章
- 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)...
- js检测、控制表单输入必须为中文
- ESP8266编译脚本之三
- 阿里NIPS 2017论文解读:如何降低TensorFlow训练的显存消耗?
- Java获得时间 String与Timestamp互转
- 将matlab中数据输出保存为txt或dat格式
- 解决6410 WINCE6 应用层调用SetSystemPowerState api关机无效的问题
- asp.net core 拦击器制作的权限管理系统DEMO
- java and dsl_Groovy语法糖以及DSL
- 里的type_拥有Type-C接口等于拥有PD快充?当然不是!
- HAProxy+Hive构建高可用数据挖掘集群
- 线性代数同济第六版笔记:1-行列式
- Windows7硬盘安装Linux
- U8如何月结及反结账
- MIST浏览器不能连接私有链
- RT-Thread ENV工具 pkgs --upgrade 报错:open .config failed
- Dining(网络流,拆点, 最大流,详细注释)
- PHP学习笔记好(待完善)
- (日) 暮苍山兰舟 (小),
- opa example