2014-03-30 88 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)