suds调用webservice
一、安装
pip install suds
二、日志
import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger(“suds.client”).setLevel(logging.DEBUG)
三、基本方法,创建client
3.1 通过wsdL的url创建一个client实例,获取服务 提供的方法(Methods )及 数量 和 数据类型(types)及 数量
from suds import Client
url="http:///www.thomas-bayer.com/axis2/services/BLZService?wsdl”
client = Client(url)
print client
返回如下:
Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913
Service ( BLZService ) tns=”http://thomas-bayer.com/blz/”
Prefixes (1)
ns0 = “http://thomas-bayer.com/blz/”
Ports (2):
(BLZServiceSOAP11port_http)
Methods (1):
getBank(xs:string blz, )
Types (3):
detailsType
getBankResponseType
getBankType
(BLZServiceSOAP12port_http)
Methods (1):
getBank(xs:string blz, )
Types (3):
detailsType
getBankResponseType
getBankType
3.2 简单的的参数调用:
3.2.1 单个服务器端口的直接调用
result = client.service.getBack(‘ICBC’)
print result
3.2.2 多个服务器端口的:
1、不指定端口的同单个服务器端口直接调用,服务会通过默认的端口处理
2、选择一个端口指定为默认端口
client.set_options(prot ='BLZServiceSOAP11port_http')
3、带服务端口名称的方法:
result = client.service[‘BLZServiceSOAP11port_http’].getBank(‘ICBC’)
print result
4、带服务端口索引的方法:
result= client。service.[0].getBank('ICBC')
print result
3.2.3 多服务与多端口:(类似与多端口的二维情况)
1、不指定服务器和端口
2、设置默认的服务和端口:
client.set_potions(service=’serviceName’, port=’portName’)
3、带服务名称和端口名称:
client.service[‘serviceName’][‘portName’].method()
4、带服务索引和端口索引:
client.service[serviceIndex][portIndex].method()
3.3复杂的参数调用:
1、使用factory.create方法根据wsdl中的格式创建复杂对象(create complex objects )
例如:http://apisandbox.4pxtech.com:8090/OrderOnline/ws/OrderOnlineService.dll?wsdl 参考文件:fourpx.rar
中创建复杂对象:createOrderRequest
order = client.factory.create("createOrderRequest”)
然后向将order中写入需要的数据,必须的参数minOccurs="1",非必须参数:minOccurs="0"
将order传给需要createOrderRequest类型参数的方法
详细参考:https://fedorahosted.org/suds/wiki/Documentation#SERVICESWITHMULTIPLEPORTS 中的FACTORY方法说明
2、HEADERS(参照HEADERS方法)
client = client(url)
token = client.factory.create('AuthToken')
token.username = 'Elvis'
token.password = 'TheKing'
client.set_options(soapheaders=token)
3、COSTOM SOAP HEADERS(参照COSTOM SOAP HEADERS方法)
4、PLUGINS
suds调用webservice的更多相关文章
- Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'
使用python的suds包调用webservice服务接口,报错:AttributeError: 'Document' object has no attribute 'set' 调用服务接口代码: ...
- python suds 调用webservice 缓存
在linux系统中 如果webservice更新了字段 suds调用有可能缓存以前的字段或方法,对新的字段报找不到类型 TypeNotFound,或者对 新加的方法找不到该方法的错误. 当更新或添加w ...
- python使用suds调用webservice接口
最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds mac: sudo pip in ...
- python使用SUDS调用webservice
最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds mac: sudo pip in ...
- python使用suds来调用webservice
对于python仅作为客户端调用webservice的情况,推荐使用suds库来完成,比起zsi,soapy之类,它可以说是相当轻量级,使用非常方便. 安装suds建议使用easy_insall来做. ...
- Python调用Webservice
使用Python调用webservice 推荐使用 suds包 该包一般在Python2.x python3各种麻烦 略过 实例 import suds # webservice url url ...
- 一个简单的webservice的demo(下)winform异步调用webservice
绕了一大圈,又开始接触winform的项目来了,虽然很小吧.写一个winform的异步调用webservice的demo,还是简单的. 一个简单的Webservice的demo,简单模拟服务 一个简单 ...
- 调用webservice进行身份验证
因为同事说在调用webservice的时候会弹出身份验证的窗口,直接调用会返回401,原因是站点部署的时候设置了身份验证(账号名称自己配置).因而在调用的时候需要加入身份验证的凭证. 至于如何获取身份 ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
随机推荐
- 一键发布ASP.NET Web安装程序
转载自:http://www.cnblogs.com/nangong/p/Web.html 前言:最近公司有个Web要发布,但是以前都是由实施到甲方去发布,配置,这几天有点闲,同事让我搞 ...
- Box2D淌坑日记: 如何正确的设置角度
对刚体角度设置的唯一函数是 SetTransform 然而,这个函数不会对传入的角度作任何处理,因此,如果你试图设置一个角度,并应用一个revoluteJoint时,可能会出现问题. 我在实践中碰到的 ...
- CentOS7安装配置redis-3.0.0
一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar ...
- awk脚本
$0,意即所有域. 有两种方式保存shell提示符下awk脚本的输出.最简单的方式是使用输出重定向符号>文件名,下面的例子重定向输出到文件wow. #awk '{print $0}' grade ...
- c#中浅拷贝和深拷贝的理解
c#中拷贝有浅拷贝和深拷贝之分. 例如对象A,其中有值类型字段和引用类型字段: 1.浅拷贝: 对于值类型字段,直接逐位复制到新拷贝的副本对象中,修改副本的字段的值,不会影响源对象中字段的值: 对于引用 ...
- Vue 双层嵌套
这种的需要双层嵌套. 代码: <table id="ict-table" class="ict-table ict-report-table blue-theme& ...
- DuiLib学习笔记2——写一个简单的程序
我们要独立出来自己创建一个项目,在我们自己的项目上加皮肤这才是初衷.我的新建项目名为:duilibTest 在duilib根目录下面有个 Duilib入门文档.doc 我们就按这个教程开始入门 首先新 ...
- oracle rac重建控制文件
1.使用sqlplus连接到已经mount或open的rac数据库 sql> alter database backup controlfile to trace noresetlogs; 2. ...
- input内强制保留小数点后两位 位数不足时自动补0
input内强制保留小数点后两位 位数不足时自动补0 小数点后位数超出2位时进行四舍五入 需引入jquery包 1.11.2版本 1 function xiaoshu(x) 2 { 3 var f = ...
- 隐藏,显示任务栏,桌面 C++代码
HWND desktop,task; desktop=FindWindow(L"ProgMan",NULL); task=FindWindow(L"Shell_TrayW ...