python发布webservice接口_Python访问WebService接口

1.使用Python访问WebService远程方法

from suds.client import Client

from suds.transport.https import HttpAuthenticated

t = HttpAuthenticated(username=’admin’,password=’123′)

test = Client(‘http://xxx.xxx.xx.xxx:8080/WebService/ws/DeviceManageService?wsdl',transport=t)

print test #查看远程方法

print test.service.getDeviceList() #getDeviceList为WebService提供的接口

2. 构造WebService接口需要的参数

1)简单调用,无参数的情况

client=Client(url)

client.service.fun()

2)传递对象参数(方法1)

通过查看远程方法,发现fun 接口的参数类型为 paramType,有p1,p2两个属性

client=Client(url)

m=client.factory.create('paramType')

m.p1="param 1"

m.p2="param 2"

result=client.service.fun(m)

print result

3)传递对象参数(方法2)

client=Client(url)

m={"p1":param 1","p2":"param 2"}

print client.service.fun(m)

4)suds把异常包装成元组输出

client=Client(url)

client=Client(url, faults=False)

result=client.service.funIn("error param")

print result

3. 看懂WebService的WSDL描述文件

1)查看WebService提供的接口

标签 wsdl:operation 中的 name 表示提供的接口名称,每个接口包含 wsdl:input 和 wsdl:output 两个部分,可以理解为输入消息和输出消息。

wsdl:input 相当于接口的输入参数,wsdl:output 相当于接口的返回结果。

2)查看WebService提供的接口的参数

找 wsdl:message 标签中 与 接口名称相同的项,比如:

其中关键词  element="tns:getDevice" ,name="parameters"

继续查看 xs:complexType 标签中与"tns:getDevice" 冒号后面的字符相匹配的标签,比如:

xs:element标签描述的内容即参数的属性,这里是要求输入deviceId,参数类型为string。

即接口原型为 getDevice(string deviceId)

3)如果xs:element 标签的type的值包含"tns:“前缀(如type="tns:param"),说明这个参数是个复合结构,需要继续查找xs:complexType标签中 与”param“相匹配的标签项,依次类推。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值