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 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
解决yum对python依赖版本问题
Jul 05 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
详解python中*号的用法
Oct 21 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
Python 如何对文件目录操作
Jul 10 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
Python 数据可视化之Seaborn详解
Nov 02 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
php xml-rpc远程调用
2008/12/19 PHP
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
python分析网页上所有超链接的方法
2015/05/08 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
django使用admin站点上传图片的实例
2019/07/28 Python
解决python 找不到module的问题
2020/02/12 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
师范生自荐信范文
2013/10/06 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
财务部总监岗位职责
2014/03/12 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
企业宣传语大全
2015/07/13 职场文书
活动新闻稿范文
2015/07/17 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书