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最长公共子串算法实例
Mar 07 Python
python基础教程之匿名函数lambda
Jan 17 Python
python 使用get_argument获取url query参数
Apr 28 Python
Django migrations 默认目录修改的方法教程
Sep 28 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
详解python数据结构和算法
Apr 18 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
python查看数据类型的方法
Oct 12 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 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对数组内元素进行随机调换的方法
2015/05/12 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
Python字符串拼接六种方法介绍
2017/12/18 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python 通过文件夹导入包的操作
2020/06/01 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
生产班组长岗位职责
2014/01/05 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
会议欢迎标语
2014/06/30 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
关于观后感的作文
2015/06/18 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2016年情人节问候语
2015/11/11 职场文书