我们有
Intermec CK71 mobile devices(WiFi).总会有一种情况,设备发送请求(GET,PUT或POST),然后失去连接.我们可以使用哪些方法来防止重复的PUT或POST?在丢失连接之前,客户端设备如何知道服务器是否处理了其请求?
我已经看过这样的similar posts,但标记的答案并没有详细说明.我甚至不确定从哪里开始.我应该考虑缓存(ETag,最后修改),还是某种类型的握手?
客户端设备上有.Net Compact Framework 3.5,并通过其Web API 2端点访问服务器.
如果有人可以指出我正确的方向或提供任何建议,将非常感谢.谢谢.
最佳答案 我没有使用REST,但就我读到的信息而言,没有简单的方法来获得确认并避免重复POST.
与其他高级API框架一样,您与API提供的内容相关联,看起来设计人员没有考虑连接中止.
解决此问题的最简单方法似乎是对每个帖子使用唯一ID,并在重新发布之前检查服务器是否知道这些UID.如果服务器没有OK响应POST,则必须假设连接已断开或其他问题.然后在您尝试使用相同数据和UID的另一个POST之前,向服务器查询您发布的UID以了解先前的POST是否成功.
可能有一些可用于REST的事务封装可用于sql server.如果出现故障,“事务”协议将确保成功处理POST或“回滚”.
对不起,但我对REST知之甚少.