【问题标题】:Passing arguments into SUDS client statement将参数传递给 SUDS 客户端语句
【发布时间】:2023-03-29 18:58:02
【问题描述】:

我正在使用 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 = ""

参数比仅仅输入简单的值更复杂。

【问题讨论】:

  • 我在下一篇文章中有解决这个问题的方法。
  • 您能否发布一个指向您的“下一篇文章”的链接?

标签: python soap suds


【解决方案1】:

尝试调用服务上的方法:

from suds.client import Client
client=Client('http://eample.wsdl')
res = client.service.AbsoluteMove(profile_token, destination, speed)
print res

您需要确定为 AbsoluteMove 方法的这些参数输入什么值。

【讨论】:

    【解决方案2】:

    Client.factory.create 用于实例化您正在使用的服务内部的对象类型。如果你只是在做一个方法调用(看起来你就是这样),直接调用它。

    【讨论】:

      猜你喜欢
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 2016-03-26
      相关资源
      最近更新 更多