2016-12-27 3 views
0

Ich habe dieses Schema:Wie kann ich Header mit SOAP mit pysimplessoap hinzufügen?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="tns" xmlns:nam="https://iotchet.ru/namespases"> 
    <soapenv:Header> 
     <tns:RequestHeader> 
     <!--Optional:--> 
     <tns:sessionkey>b01daba7289e4e8baa87dbd1eb8c4f6b</tns:sessionkey> 
     </tns:RequestHeader> 
    </soapenv:Header> 
    <soapenv:Body> 
     <tns:SendContainer> 
     <!--Optional:--> 
     <tns:Container> 
      <nam:name>test</nam:name> 
      <nam:content></nam:content> 
     </tns:Container> 
     </tns:SendContainer> 
    </soapenv:Body> 
</soapenv:Envelope> 

Here I Anfrage machen:

from pysimplesoap.client import SoapClient 

client = SoapClient(wsdl='http://localhost:5555/api/containerize?wsdl') 
client.SendContainer(Container={'name': 'test', 'content': 'test'}) 

Ich kann den Weg nicht finden den Header meiner Client-Anfrage hinzuzufügen.

Antwort

1

Nehmen Sie beispielsweise an, Sie möchten Credential in Header wie folgt hinzufügen.

<soapenv:Header> 
    <Credential> 
    <user>hoge</user> 
    <password>hoge</password> 
    </Credential> 
</soapenv:Header> 

Dann können Sie den folgenden Code verwenden.

Diese Art von Regel ist schwer zu finden, weil pysimplesoap aufgegeben wird und seine Dokumente verloren gehen.

Ich fand dies in issues_test.py in GitHub. Da dieses Programm Funktionen aus den echten Fällen testet, hat es nützliche Beispiele. Wenn Sie bereit sind zu wechseln, empfehle ich Zeep. Es hat mehr Funktionen und viel schönere Dokumente.

Verwandte Themen