2014-01-13 3 views
0

비누 봉투는 어떻게 얻을 수 있으며, 서버로 보내기 전에 값을 어떻게 바꿀 수 있습니까?suds python으로 비누 봉투를 얻는 방법

예 : 비누 봉투

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"  
xmlns:ws="http://www.altoromutual.com/bank/ws/"> 
<soap:Header/> 
<soap:Body> 
    <ws:TransferBalance> 
    <!--Optional:--> 
    <ws:transDetails> 
     <ws:transferDate>2013-01-01T00:00:00</ws:transferDate> 
     <!--Optional:--> 
     <ws:debitAccount>1001160141</ws:debitAccount> 
     <!--Optional:--> 
     <ws:creditAccount>1001160140</ws:creditAccount> 
     <ws:transferAmount>2.0</ws:transferAmount> 
    </ws:transDetails> 
    </ws:TransferBalance> 

나는이 봉투를 잡고 난 비눗물로 그것을 할 수 server.How에 전송하기 전에 값을 변경하려면

감사

+0

당신은 [의사] (https://fedorahosted.org/suds/wiki/Documentation#Doctors) 클래스를 사용할 수 있습니다 어떻게 변경하고 싶은지에 따라 다릅니다. 또는 사용중인 wsdl을 다운로드하고 수정할 수 있습니다. – jordanm

답변

1

질문을 올바르게 이해했다면 봉투를 수정하기 위해 반드시 비눗물을 사용해야 할 필요는 없습니다. 대신 요청을 템플릿으로 저장하고 선호하는 템플릿 엔진을 사용하여 변경해야하는 값을 변경하고 __inject 매개 변수를 사용하여 전체 요청을 suds 호출에 전달할 수 있습니다. 여기

은 간단한 예제 :

import suds 
from mako.template import Template 

WSDL = 'https://example.com/someservice?wsdl' 

client = suds.client.Client(WSDL) 
template = Template(filename='template.xml') 
request = template.render(debitaccount='someaccount', creditaccount='anotheraccount') 
response = client.service.some_call(__inject={'msg':request}) 

그리고 템플릿

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"  
xmlns:ws="http://www.altoromutual.com/bank/ws/"> 
<soap:Header/> 
<soap:Body> 
    <ws:TransferBalance> 
    <!--Optional:--> 
    <ws:transDetails> 
     <ws:transferDate>2013-01-01T00:00:00</ws:transferDate> 
     <!--Optional:--> 
     <ws:debitAccount>${debitaccount}</ws:debitAccount> 
     <!--Optional:--> 
     <ws:creditAccount>${creditaccount}</ws:creditAccount> 
     <ws:transferAmount>2.0</ws:transferAmount> 
    </ws:transDetails> 
    </ws:TransferBalance> 
</soap:Body> 
</soap:Envelope> 
+0

Pls는 일부 템플릿 엔진을 제안합니다. 나는 webservices와 sudads에 처음이다. 도움이 될만한 샘플 코드가 있다면 – user3157084

+0

[mako] (http://www.makotemplates.org/)를 사용하고있다. – skoll

+0

몇 가지 샘플 코드가 추가되었습니다. – skoll