我正在尝试为现有的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中将“return”与我在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>