2

我正在尝试为现有的 SOAP 客户端构建 SOAP 服务器。我有一个工作正常的简单函数,它只返回一个字符串。现在我正在构建一个更复杂的函数,当我使用 Wireshark 观察流量时,我没有收到任何 SOAP 响应。

这是我的功能:

def getMetadata(id, index, count):
print "id =", id
response = {'index': 0,
            'count': 1,
            'total': 1}
return response

我的功能注册:

dispatcher.register_function('getMetadata', getMetadata,
                         returns={'getMetadataResult': {'index': int, 'count': int, 'total': int}},
                         args={'id': str, 'index': int, 'count': int})

我认为我在将 register_function 中的“返回”与我在 getMetadata 中构建的响应匹配时遇到了问题。

作为参考,这是我正在尝试构建的预期 SOAP 响应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getMetadataResponse xmlns="<removed>">
      <getMetadataResult>
        <index>0</index>
        <count>3</count>
        <total>3</total>
      </getMetadataResult>
    </getMetadataResponse>
  </soap:Body>
</soap:Envelope>
4

0 回答 0