2010-01-14 4 views
2

WSDL 파일을 테스트하기 위해 SUDS (SOAP과 유사)를 사용하고 있습니다. 메소드에는 추가 기능에 링크 된 유형이 들어 있습니다. 표시되는 유형에 저장된 변수에 액세스하는 방법을 모르겠습니다. 일부 샘플 코드는 다음과 같습니다 :SUDS 클라이언트 문에 인수 전달

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

다음 게시물에이 문제에 대한 해결책이 있습니다. – chrissygormley

+0

"다음 게시물"에 대한 링크를 게시 할 수 있습니까? –

답변

2

시도는 서비스의 메소드를 호출합니다 :

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

당신은 AbsoluteMove 방법에 그 인수에 넣어 값을 결정해야합니다.

1

Client.factory.create은 사용중인 서비스의 내부 객체 유형을 인스턴스화하기위한 것입니다. 메서드 호출을하고 있다면 (직접 호출 한 것처럼 보입니다.) 직접 호출하십시오.