python调用webservice接口的实现

yipeiwu_com6年前Python基础

使用suds这个第三方模块

from suds.client import Client
url = 'http://ip:port/?wsdl'
cilent=Client(url)
print cilent 

查看webservice接口的具体信息:

调用接口方法,通常 client.service.methodname

实际测试过程中遇到的坑:

1、tns 值为Localhost

之前查看接口信息时,未发现tns="http://Localhost:4567/Interface.wsdl",这个被设置成Localhost,导致通过接口调用时,只能在webservice接口本地服务器上才能调用成功,其他服务器调用时,接口中的方法都无法获取。大坑!

解决方法:修改webservice接口对应的wsdl文件 Interface.wsdl,将其中的Localhost改成具体ip即可。

2、接口方法名不符合python命名规范

比如上述的方法,无法直接这样调用

解决办法:python内置函数getattr 。 getattr(cilent.service,'ser-GetAreaID')('1')

3、接口方法传参

此方法为例

1、方法一:

soap_rep=getattr(soapService, 'ser-SetValue')(nSetFlag=1,nSystemID=1,nRecordNo=440002028,nTableNo=18,cValue='225',UserName='admin')

2、方法二:

soap_rep=getattr(soapService, 'ser-SetValue')(1,1,440002028,18,'225','admin') # 需要一一对应

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅谈flask中的before_request与after_request

本文主要是对flask中的before_request与after_request用法做一个简单的分析,具体实例和介绍如下。 使用before_request 和 after_reque...

PYQT5开启多个线程和窗口,多线程与多窗口的交互实例

PYQT5开启多个线程和窗口,多线程与多窗口的交互实例

每点击一次按钮,弹出一个对话框(子窗口),同时开启一个子线程来执行任务并更新对话框内容,关闭对话框则关闭对应子线程 1. 建立一个简单的主界面和一个自定义对话框 from PyQt...

分享Python开发中要注意的十个小贴士

大家请注意:这篇文中假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子: [2...

windows 10 设定计划任务自动执行 python 脚本的方法

windows 10 设定计划任务自动执行 python 脚本的方法

我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中。之前我都是手动执行这些脚本,现在我希望如何这些脚本能...

详解python数据结构和算法

详解python数据结构和算法

1.删除序列相同元素并保持顺序 如果仅仅就是想消除重复元素,通常可以简单的构造一个集合,利用集合之间元素互不相同的特性就可以消除重复,但是这种方法生成的结果中元素的位置会被打乱。下面是我...