2014-03-30 5 views
1

저는 파이썬을 처음 사용하고 있습니다. sudswsdl 클라이언트에 사용합니다. 이를위한 맞춤 요청 헤더를 어떻게 만들 수 있습니까?SUDS Custom Header

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 압축과 같은 다양한 기능이 부족합니다 (오래된 suds 패키지를 사용하는 경우 'accept-encoding : gzip'헤더를 추가하지 않아도됩니다). 여러 가지 포크가 튀어 나왔다. 나는 그들의 가장 활발한 것이 suds-jurko라고 믿습니다.

0

공식 SUDS 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)