微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Zeep 中创建自定义标题

如何解决如何在 Zeep 中创建自定义标题

Zeep 和 SOAP 的全新功能

我希望我的 SOAP 请求在 SOAP 信封中包含标头。 示例 SOAP 看起来像

<saop:Envelope>
<soap:Header
   xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
   xmlns:wsa="http://www.w3.org/2005/08/addressing"
   xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
   xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
   xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

   <wsa:Action S:mustUnderstand="1" wsu:Id="Action"
      xmlns:S="S">http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/RetrieveMultiple
   </wsa:Action>

</soap:Header>
</saop:Envelope>

我尝试在 ZEEP 中创建自定义 SOAP 标头,但遇到了问题 <Action></Action> 标记可以使用以下代码生成

header_1 = xsd.Element(
    '{http://www.w3.org/2005/08/addressing}Action',xsd.ComplexType([
        xsd.Attribute(
            '{S}mustUnderstand',xsd.String()
        ),xsd.Attribute(
            '{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Id',])
)

header_value = header_1(mustUnderstand='1',Id='Action')

但这给出了输出

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Header>
    <ns0:Action xmlns:ns0="http://www.w3.org/2005/08/addressing" xmlns:ns1="S" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" ns1:mustUnderstand="1" ns2:Id="Action"/>
  </soap-env:Header>
</soap-env:Envelope>

如何编辑它以获取 http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/RetrieveMultiple 标签内的 <Action></Action> 内容? 任何帮助将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。