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程序语言快速上手教程
Jul 18 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
python实现每次处理一个字符的三种方法
Oct 09 Python
Python操作csv文件实例详解
Jul 31 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
python读取和保存视频文件
Apr 16 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 Python
Python实现动态循环输出文字功能
May 07 Python
python能自学吗
Jun 18 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
python实现发送QQ邮件(可加附件)
Dec 23 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python检查指定文件是否存在的方法
2015/07/06 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
python 字符串追加实例
2019/07/20 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Python列表切片常用操作实例解析
2019/12/16 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
商务英语本科生的自我评价分享
2013/11/15 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
项目开发计划书
2014/01/09 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
员工开除通知书
2015/04/25 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
python中的None与NULL用法说明
2021/05/25 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL