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实现设置windows桌面壁纸代码分享
Mar 28 Python
Python Socket传输文件示例
Jan 16 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
Python中新式类与经典类的区别详析
Jul 10 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
JavaScript中的集合及效率
2010/01/08 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
python备份文件的脚本
2008/08/11 Python
python进程类subprocess的一些操作方法例子
2014/11/22 Python
python记录程序运行时间的三种方法
2017/07/14 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
初中生三年学习生活的自我评价
2013/11/03 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
先进教师事迹材料
2014/12/16 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang