2014-03-30 117 views
1

我是Python新手,我使用泡泡盾代表wsdl客戶端。我如何爲此創建自定義請求標頭。SUDS自定義標頭

XML從SOAP UI獲得:

<soapenv:Header> 
     <sbus:SBusContext message-tracking-id="?" correlation-id="?" entry-dtime="?" timestamp="?" entry-system="?" entry-system-principal="?" entry-url="?" priority="?"> 
     <!--Optional:--> 
     <sbus:Keys> 
      <!--1 or more repetitions:--> 
      <sbus:Key keyType="?" keyValDataType="string"> 
       <sbus:KeyValue>?</sbus:KeyValue> 
      </sbus:Key> 
     </sbus:Keys> 
     <!--Optional:--> 
     <sbus:ExtContext>?</sbus:ExtContext> 
     </sbus:SBusContext> 
    </soapenv:Header> 

回答

1

編輯 -

我意識到你可能會問一個SOAP頭,而不是HTTP標頭。如果是這樣,請忽略我的回答。我的錯。


到這裏看看:使用set_options這樣

client = suds.client.Client(url, headers={'key': 'value'}) 

或客戶端後,將創建,:How to add http headers in suds 0.3.6?

創建客戶端這樣時,您可以添加標題

client.set_options(headers={'key2': 'value'}) 

值得注意的是原始泡沫包不再維護(las t版本2010年9月)。它缺少你可能想要的各種功能,比如gzip壓縮(所以如果你使用舊的泡沫軟件包,不要打擾添加'accept-encoding:gzip'標題)。各種各樣的叉子涌現了。我相信他們中最活躍的人是suds-jurko。

0

這個片段來自官方肥皂水documentation

from suds.sax.element import Element 
client = client(url) 
ssnns = ('ssn', 'http://namespaces/sessionid') 
ssn = Element('SessionID', ns=ssnns).setText('123') 
client.set_options(soapheaders=ssn) 
result = client.service.addPerson(person)