python使用suds调用webservice接口的方法


Posted in Python onJanuary 03, 2019

最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了

1.安装suds

mac: sudo pip install suds

linux: easy_install suds

也可以通过去官网下载suds代码,再本地安装

2. 引用初始化

>>> from suds.client import Client
>>> url = 'http://www.gpsso.com/webservice/kuaidi/kuaidi.asmx?wsdl'
>>> client = Client(url)
>>> print client

Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913

Service ( Kuaidi ) tns="http://gpsso.com/"
Prefixes (1)
ns0 = "http://gpsso.com/"
Ports (2):
(KuaidiSoap)
Methods (1):
KuaidiQuery(xs:string Compay, xs:string OrderNo, )
Types (1):
ApiSoapHeader
(KuaidiSoap12)
Methods (1):
KuaidiQuery(xs:string Compay, xs:string OrderNo, )
Types (1):
ApiSoapHeader
>>>

对url做一下说明,一般要确认给的wsdl地址是正常模式,地址打开一般为xml格式而有些服务是做成了html模式,这个会导致实例化或者调用方法的时候出现xml解析异常。

3. 方法调用

2中的client打印出来就可以知道,该webserviece服务定义了什么方法,方法需要什么参数,声明了什么信息等(如头信息,ApiSoapHeader),方法可以通过client.serviece直接调用

>>> client.service.KuaidiQuery(Company='EMS', OrderNo='1111')
(KuaidiQueryResult){
 API =
  (API){
   RESULTS = "0"
   MESSAGE = "接口查询成功"
  }
 }
>>>

而声明的头信息,则可以用factory的方式去实例化

>>> header = client.factory.create('ApiSoapHeader')
>>> print header
(ApiSoapHeader){
 APICode = None
 APIKey = None
 }
>>> header.APICode = '123'
>>> header.APIKey = 'key123'
>>> print header
(ApiSoapHeader){
 APICode = "123"
 APIKey = "key123"
 }
>>>

头信息需要用set_options方法设置

>>>
>>> client.set_options(soapheaders=[header,])
>>>

如果没有描述的头信息,可以通过查阅文档https://fedorahosted.org/suds/wiki/Documentation查询custom soap headers来设置

以上这篇python使用suds调用webservice接口的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python模拟百度登录实例详解
Jan 20 Python
python实现解数独程序代码
Apr 12 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
便捷提取python导入包的属性方法
Oct 15 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
python实现字符串加密成纯数字
Mar 19 Python
Python数据持久化存储实现方法分析
Dec 21 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
python实战之90行代码写个猜数字游戏
Apr 22 Python
Python调用服务接口的实例
Jan 03 #Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 #Python
python requests 库请求带有文件参数的接口实例
Jan 03 #Python
Python图像处理之颜色的定义与使用分析
Jan 03 #Python
Python在图片中插入大量文字并且自动换行
Jan 02 #Python
python 输出所有大小写字母的方法
Jan 02 #Python
Python高斯消除矩阵
Jan 02 #Python
You might like
PHP开发过程中常用函数收藏
2009/12/14 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
Python格式化css文件的方法
2015/03/10 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python中按键来获取指定的值
2019/03/02 Python
python 两个数据库postgresql对比
2019/10/21 Python
Python xlwt模块使用代码实例
2020/06/10 Python
python语言的优势是什么
2020/06/17 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
银行门卫岗位职责
2013/12/29 职场文书
医药销售自荐书
2014/05/29 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
干部考察材料范文
2014/12/24 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS