2016-12-27 6 views
0

私はこのスキームを持っている:pysimplesoapでSOAPにヘッダーを追加するにはどうすればよいですか?

ここ
<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> 

私は要求を行います。

from pysimplesoap.client import SoapClient 

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

私は私のクライアントの要求にヘッダを追加する方法を見つけることができません。

答えて

1

たとえば、次のようにヘッダーに資格情報を追加するとします。

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

次に、次のコードを使用できます。

client = SoapClient(wsdl=WSDL_FILE) 
client['Credential'] = { 'user': 'hoge', 'password': 'hoge' } 

pysimplesoapが破棄され、そのドキュメントが失われているため、この種のルールは見つけるのが難しいです。

これはGitHubのissues_test.pyで見つかりました。このプログラムは実際のケースからテストされた機能をテストするため、有用な例があります。

切り替えたい場合は、Zeepをお勧めします。それはより多くの機能とはるかに良い文書を持っています。

関連する問題