当消息头有多个元素时,如何在zeep中设置soap头

2024-05-14 12:38:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用pythonzeep连接到soap服务(使用wsdl)。在

下面是soapui为操作生成的XML。在

我很难找到soap>。 在本例中,头文件中有多个XML元素。在

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acm="http://www.acme.com/ACM">
       <soapenv:Header>
          <acm:MessageID>?</acm:MessageID>
          <acm:ExName>?</acm:ExName>
          <acm:Authentication>
             <acm:Username>?</acm:Username>
             <acm:Password>?</acm:Password>
          </acm:Authentication>
       </soapenv:Header>
       <soapenv:Body>
          <acm:LIST_STOCKS>
             <!--Optional:-->
             <acm:STOCKID>?</acm:STOCKID>
             <!--Optional:-->
             <acm:PRODUCT>?</acm:PRODUCT>
          </acm:LIST_STOCKS>
       </soapenv:Body>
    </soapenv:Envelope>

谢谢。在


Tags: httpauthenticationusernamebodypasswordxmlsoaplist
1条回答
网友
1楼 · 发布于 2024-05-14 12:38:26

这是一个老问题,但我将在这里留下一个答案供将来参考。在

从文档中看不太清楚,但是您可以通过使用字典设置_soap_headers来设置元素。在

在给定的示例中:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acm="http://www.acme.com/ACM">
       <soapenv:Header>
          <acm:MessageID>?</acm:MessageID>
          <acm:ExName>?</acm:ExName>
          <acm:Authentication>
             <acm:Username>?</acm:Username>
             <acm:Password>?</acm:Password>
          </acm:Authentication>
       </soapenv:Header>
       <soapenv:Body>
          <acm:LIST_STOCKS>
             <! Optional: >
             <acm:STOCKID>?</acm:STOCKID>
             <! Optional: >
             <acm:PRODUCT>?</acm:PRODUCT>
          </acm:LIST_STOCKS>
       </soapenv:Body>
    </soapenv:Envelope>

你可以这样发送邮件头:

^{pr2}$

相关问题 更多 >

    热门问题