我有一个同步应用程序,它每 10 秒向 Web 服务发送一次请求,并在本地数据库中进行一些数据转换,反之亦然。为了方便和解决一些争议,我想记录任何一对请求和响应 SOAP 消息。
但正如我的经验告诉我的那样,这将占用大量空间,用相同的请求和响应填充 SQLite 数据库。
如何以更少的磁盘空间实现相同级别的日志分解?事实上,记录整个消息有什么好处吗?也许我们可以只剪切参数值并记录它而不是完整的消息?
也许还有另一种机制可以压缩消息(或扩展/获取包含部分数据的完整消息?)并存储更少的数据,但能够在需要的地方获取源消息?
样品: 要求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:GetModifiedItems>
<tem:Key>abcdef</tem:Key>
</tem:GetModifiedItems>
</soapenv:Body>
</soapenv:Envelope>
回复:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetModifiedItemsResponse xmlns="http://tempuri.org/">
<GetModifiedItemsResult xmlns:a="http://schemas.datacontract.org/2004/07/Exchange" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Body i:type="a:lst">
<a:List>
<a:BaseItem i:type="a:asd">
<a:ISDELETED i:nil="true"/>
<a:ID>1</a:ID>
<a:SYSUSER>b2</a:SYSUSER>
</a:BaseItem>
<a:BaseItem i:type="a:asd">
<a:ISDELETED i:nil="true"/>
<a:ID>2</a:ID>
<a:SYSUSER>b3</a:SYSUSER>
</a:BaseItem>
</a:List>
</a:Body>
<a:Msg>SUCCESS</a:Msg>
</GetModifiedItemsResult>
</GetModifiedItemsResponse>
</s:Body>
</s:Envelope>