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制作简单的朴素基数估计器的教程
Apr 01 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
简单了解python的break、continue、pass
Jul 08 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
如何爬取通过ajax加载数据的网站
Aug 15 Python
python实现超市管理系统(后台管理)
Oct 25 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
浅谈Python列表嵌套字典转化的问题
Apr 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
PHP 转义使用详解
2013/07/15 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
Python数据类型学习笔记
2016/01/13 Python
python3.5仿微软计算器程序
2020/03/30 Python
Python查询IP地址归属完整代码
2017/06/21 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
SQL中where和having的区别
2012/06/17 面试题
如何强制垃圾回收
2015/10/06 面试题
《鲁班和橹板》教学反思
2014/04/27 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
高中政治教师教学反思
2016/02/23 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
2022漫威和DC电影上映作品
2022/04/05 欧美动漫