2

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 = ""

パラメータは単純な値を入力するよりも複雑です。

4

2 に答える 2

3

サービスでメソッドを呼び出してみます。

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

AbsoluteMove メソッドへのこれらの引数に入れる値を決定する必要があります。

于 2010-01-15T01:26:44.640 に答える
1

Client.factory.create利用しているサービスの内部にあるオブジェクト タイプをインスタンス化するためのものです。メソッド呼び出しを行っているだけの場合 (そうであるように見えます)、直接呼び出します。

于 2010-01-15T01:33:19.813 に答える