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 isinstance判断对象类型
Sep 06 Python
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
python服务器端收发请求的实现代码
Sep 29 Python
python开发之文件操作用法实例
Nov 13 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
python迭代dict的key和value的方法
Jul 06 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
Python字典实现伪切片功能
Oct 28 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
Python中Cookies导出某站用户数据的方法
May 17 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 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
PHP文件操作实现代码分享
2011/09/01 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python插件机制实现详解
2020/05/04 Python
Python tkinter实现日期选择器
2021/02/22 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
vivo智能手机官方商城:vivo
2016/09/22 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
数控专业应届生求职信
2013/11/27 职场文书
护理个人求职信范文
2014/01/08 职场文书
草船借箭教学反思
2014/02/03 职场文书
小学三年级学生评语
2014/04/22 职场文书
中等生评语大全
2014/05/04 职场文书
接待员岗位职责
2015/02/13 职场文书
奔腾年代观后感
2015/06/09 职场文书
高中英语教学反思范文
2016/03/02 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
二年级作文之动物作文
2019/11/13 职场文书