2016-12-27 3 views
0

У меня есть эта схема:Как добавить заголовок в SOAP с помощью pysimplesoap?

<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 заброшен и его документы потеряны.

Я нашел это в issues_test.py в GitHub. Поскольку эта программа проверяет функции, взятые из реальных случаев, у нее есть полезные примеры.

Если вы хотите переключиться, я рекомендую Zeep. Он имеет больше возможностей и гораздо более приятные документы.

 Смежные вопросы

  • Нет связанных вопросов^_^