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之字典,你还记得吗?
Sep 20 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python简单实现基数排序算法
May 16 Python
Python实现保证只能运行一个脚本实例
Jun 24 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
Python生成短uuid的方法实例详解
May 29 Python
HTML的form表单和django的form表单
Jul 25 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 Python
如何利用Python写个坦克大战
Nov 18 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
Python合并多张图片成PDF
Jun 09 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 中文处理函数集合
2008/08/27 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
php 可变函数使用小结
2018/06/12 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
动手学习无线电
2021/03/10 无线电
拖拉表格的JS函数
2008/11/20 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
python实现单向链表详解
2018/02/08 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Python Json数据文件操作原理解析
2020/05/09 Python
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
团队拓展活动方案
2014/08/28 职场文书
行政介绍信范文
2015/05/04 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP