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 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
python通过smpt发送邮件的方法
Apr 30 Python
老生常谈python之鸭子类和多态
Jun 13 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
Python socket实现简单聊天室
Apr 01 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
python区块及区块链的开发详解
Jul 03 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 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
openPNE常用方法分享
2011/11/29 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
PHP实现简易图形计算器
2020/08/28 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
javascript常用方法总结
2015/05/14 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
JavaScript"模拟事件"的注意要点详解
2019/02/13 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Python urllib.request对象案例解析
2020/05/11 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
数控专业自荐书范文
2014/03/16 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
幼儿园见习报告
2014/10/30 职场文书
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技