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多线程ctrl+c退出问题解决方案
Oct 23 Python
Python从MP3文件获取id3的方法
Jun 15 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
TensorFlow的权值更新方法
Jun 14 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
python设计tcp数据包协议类的例子
Jul 23 Python
python编程进阶之类和对象用法实例分析
Feb 21 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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
如何理解python对象
2020/06/21 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
thinkphp5 路由分发原理
2021/03/18 PHP
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
自荐信范文
2013/12/10 职场文书
实习单位接收函
2014/01/11 职场文书
工程管理英文求职信
2014/03/18 职场文书
2014年后勤工作总结
2014/11/18 职场文书
第一军规观后感
2015/06/12 职场文书