python webservice客户端_Python接口自动化——用python客户端去访问webservice (基于suds)...

本文介绍了如何使用Python的Suds库来调用SOAP协议的Webservice接口,特别是处理ns0类型的参数。通过创建工厂对象来对应接口方法的参数,详细展示了createUserApi方法的调用过程,包括创建不同类型的工厂对象并传入具体数据,最终成功调用服务。
摘要由CSDN通过智能技术生成

1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种:

第一种是传参,不需要再创建啥,

第二种就是ns0类型的,如果直接以dict类型传进去的话是,里面的程序是无法将对应的参数一一对应上的,所以我们这边需要创建一个工厂,然后把这些工厂当做参数传入进去。下面就进行一步步解释一下这个步骤

Service ( BssUserManageServiceService ) tns="http://service.bos.webservice.os.ot.fontw.com/"

Prefixes (1)

ns0 = "http://bssUserManage.service.bos.webservice.os.ot.fontw.com/"

Ports (1):

(BssUserManageServicePort)

Methods (2):

createUserApi(ns0:custBeanFh custBean, ns0:userBeanFh userBean, ns0:acctBeanFh acctBean, ns0:orderBeanFhArray orderBeanArray, xs:string sequenceID, )

modifyUserPwdApi(xs:string userID, xs:string pwd, xs:string sequenceID, )

Types (7):

ns0:Exception

ns0:acctBeanFh

ns0:custBeanFh

ns0:orderBeanFh

ns0:orderBeanFhArray

ns0:resultBeanFh

ns0:userBeanFh

2:以第一个createUserApi方法为例:

这个方法的参数类型就是ns0,代码如下:

# 导入suds库

from suds.client import Client

user_url = "http://192.168.0.1:7008/oss/rest/bss?wsdl" # 这里是你的webservice访问地址

client = Client(user_url) # Client里面直接放访问的URL,可以生成一个webservice对象

print(client) # 打印所webservice里面的所有接口方法名称

# 对每个含有 ns0的参数类型进行创建一个工厂

userBean = client.factory.create("ns0:userBeanFh")

userBean_temp = createuserApi ["userBean"]

custBean = client.factory.create("ns0:custBeanFh")

custBean_temp = createuserApi ["custBean"]

orderBeanArray = client.factory.create("ns0:orderBeanFhArray")

orderBeanArray.item = createuserApi ["orderBeanArray"]

# 把对应的参数数据传进你所要调用的方法即可

createuserApi = {

"custBean": {"custID": "custid08", "custName": "custname08", "custTelephone": "88888888"},

"userBean": {"userID": "100000", "userName": "Test", "password": "123456789"},

"sequenceID": 20170831205310

}

# 调用对应的方法

result = client.service.createUserApi(orderBeanArray=orderBeanArray, acctBean=userBean_temp ,

userBean=userBean_temp ,

custBean=custBean_temp , sequenceID=param["sequenceID"])

官方文档参考:https://webkul.com/blog/python-suds-client/

自己之前的操作是没有创建其工厂,就直接传参数进去,导致其一直没有跑通过,最后得已于自己导师的帮助才得以解决,在此非常感谢他。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值