2011-03-23 3 views
0

python 클라이언트 (SUDS0.4를 통해)를 SOAP 서버에 연결하려고합니다. 일반적으로는 SOAP 함수에 복잡한 인수를 제공하기 위해, 나는 파이썬 사전을 사용 예는 SOAP 인수처럼 보이는 경우 :Python - Suds0.4 - SOAP 본문 복합 인수

<parameterDesignatorValuePair> 
<parameterDesignator>Message</parameterDesignator> 
<parameterValue>AAAABgBDAG8AdQBjAG8AdQ==</parameterValue> 
</parameterDesignatorValuePair> 

내 파이썬 코드가 보이는 같은 : 이제

result = client.service.myfunction(parameterDesignatorValuePair={'parameterDesignator':val1,'parameterValue':val2}) 

내가 프로그래밍하지 않은 SOAP 서버에 연결하려고하지만 요청한 SOAP 본문이 기존 Java 클라이언트에서 어떻게 보이는지 알고 있습니다. (관련 부분)

... 
<parameterDesignatorValuePairSet> 
<parameterDesignatorValuePair> 
<parameterDesignator>Message</parameterDesignator> 
<parameterValue>AAAABgBDAG8AdQBjAG8AdQ==</parameterValue> 
</parameterDesignatorValuePair> 
<parameterDesignatorValuePair> 
<parameterDesignator>Sender</parameterDesignator> 
<parameterValue>AAAABwBSAGUAbgBhAHUAbABk</parameterValue> 
</parameterDesignatorValuePair> 
</parameterDesignatorValuePairSet> 
... 

그래서 "parameterDesignatorValuePairSet"라는 복잡한 인수를 정확히 두 개의 복잡한 인수로 구성하여 "parameterDesignatorValuePair"라는 이름으로 전달해야합니다. 파이썬 사전을 사용하여 할 수 없습니다 .-(

목록과 튜플하지만 SUDS 나에게 오류를 반환 ...

답변

1

방금이 작업을 수행하려고 노력 도움을

감사 :

param = client.factory.create('ns1:parameterDesignatorValuePairNamespace') 
param.parameterDesignator = val1 
param.parameterValue = val2 

client.service.FunctionName(param) 

네임 스페이스는 W를 인쇄하실 수 있습니다 SUDS 연결 후 SDL 파일.

관련 문제