如何防止重复的http请求?

BBa*_*r42 6 caching compact-framework asp.net-web-api2

我们有Intermec CK71移动设备(WiFi)。在任何情况下,设备都会发送请求(GET,PUT或POST),然后失去连接。我们可以使用什么方法来防止重复的PUT或POST?客户端设备如何在断开连接之前知道服务器是否处理了请求?

我已经看到过类似的帖子,但是标记的答案并没有太多细节。我什至不知道从哪里开始。我应该研究缓存(ETag,最后修改)还是某种形式的握手?

客户端设备上装有.Net Compact Framework 3.5,并且正在通过其Web API 2端点访问服务器。

如果有人可以指出正确的方向或提出任何建议,将不胜感激。谢谢。

jos*_*sef 4

我没有使用 REST,但据我阅读的信息,没有简单的方法来获得确认并避免重复的 POST。

与其他高级 API 框架一样,您必须依赖于 API 提供的功能,而且设计者似乎没有考虑连接中止的问题。

解决此问题的最简单方法似乎是在每个帖子中使用唯一的 ID,并在重新发布之前检查服务器是否了解这些 UID。如果服务器没有以“OK”响应 POST,则必须假设连接已断开或出现其他问题。然后向服务器查询您发布的 UID,以了解上一次 POST 是否成功,然后再尝试使用相同数据和 UID 进行另一次 POST。

可能有一些事务封装可用于 REST,就像可用于 sql server 一样。“事务”协议将确保 POST 已成功处理,或者在出现故障时“回滚”。

抱歉,我对 REST 不太了解。