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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
Python 判断 有向图 是否有环的实例讲解
Feb 01 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
flask-restful使用总结
Dec 04 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
python word转pdf代码实例
Aug 16 Python
python实现的读取网页并分词功能示例
Oct 29 Python
解决python 读取 log日志的编码问题
Dec 24 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获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php实例分享之二维数组排序
2014/05/15 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
对python中return和print的一些理解
2017/08/18 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
3分钟学会一个Python小技巧
2018/11/23 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
Django--权限Permissions的例子
2019/08/28 Python
python 公共方法汇总解析
2019/09/16 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
关爱留守儿童标语
2014/06/18 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
防汛工作情况汇报
2014/10/28 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
Java后台生成图片的完整步骤
2021/08/04 Java/Android
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
python实现双向链表原理
2022/05/25 Python