我正在使用SUDS(像SOAP)来测试WSDL文件。这些方法包含与其他功能相关联的类型。我不知道如何访问存储在显示的类型中的变量。下面是一些示例代码:
from suds.client import Client
client=Client('http://eample.wsdl')
print client
回应是:
Ports (1):
(PTZ)
Methods (4):
AbsoluteMove(ns4:ReferenceToken ProfileToken, ns4:PTZVector Destination, ns4:PTZSpeed Speed, )
Types (303):
ns4:PTZSpeed
我可以访问这些功能。我找不到任何关于如何在SUDS中测试函数的文档。我想测试函数是否有效并检查它们的返回值。有谁知道怎么做?
我使用下面的命令显示所有子功能。
client.factory.create('AbsoluteMove.PTZSpeed.Speed.PanTilt')
我的主要问题基本上是将值传递给函数并获取返回值。
我试图传递参数,但参数的属性存储在属性中。下面显示了我试图访问的参数结构的布局。
(AbsoluteMove){
ProfileToken = None
Destination =
(PTZVector){
PanTilt =
(Vector2D){
_x = ""
_y = ""
_space = ""
}
Zoom =
(Vector1D){
_x = ""
_space = ""
}
}
Speed =
(PTZSpeed){
PanTilt =
(Vector2D){
_x = ""
_y = ""
_space = ""
}
Zoom =
(Vector1D){
_x = ""
_space = ""
参数比输入简单值更复杂。
答案 0 :(得分:3)
尝试在服务上调用方法:
from suds.client import Client
client=Client('http://eample.wsdl')
res = client.service.AbsoluteMove(profile_token, destination, speed)
print res
您需要确定为AbsoluteMove方法的参数输入的值。
答案 1 :(得分:1)
Client.factory.create
用于实例化您正在使用的服务内部的对象类型。如果您只是在进行方法调用(您似乎是这样),请直接调用它。