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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
python实现超市扫码仪计费
May 30 Python
Python编程flask使用页面模版的方法
Dec 28 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
Python Django 前后端分离 API的方法
Aug 28 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
Python生态圈图像格式转换问题(推荐)
Dec 02 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
Python中qutip用法示例详解
2020/10/02 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
法学专业自我鉴定
2014/02/05 职场文书
教师演讲稿大全
2014/05/16 职场文书
杭白菊导游词
2015/02/10 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
读书笔记怎么写
2015/07/01 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
全新239军机修复记
2022/04/05 无线电