如何使用 pysimplesoap 将 header 添加到 SOAP?
How can I add header to SOAP with 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'})
我找不到将 header 添加到我的客户端请求的方法。
例如,假设您要在 Header 中添加 Credential,如下所示。
<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。它具有更多功能和更好的文档。
我有这个方案:
<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'})
我找不到将 header 添加到我的客户端请求的方法。
例如,假设您要在 Header 中添加 Credential,如下所示。
<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。它具有更多功能和更好的文档。