簡體   English   中英

如何用肥皂泡python獲得肥皂信封

[英]How to get the soap envelope with 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>

我想保留這個信封並在發送到服務器之前更改其值。如何用肥皂水處理

謝謝

如果我正確理解了這個問題,則不必使用泡沫來修改信封。 相反,您可以將請求另存為模板,使用喜歡的模板引擎來更改需要更改的任何值,然后使用__inject參數將整個請求傳遞給__inject調用。

這是一個簡單的例子:

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM