如何防止重复的http请求?

How to prevent duplicate http requests?

我们有 Intermec CK71 mobile devices (WiFi)。总会有这样一种情况,设备发送请求(GET、PUT 或 POST),然后失去连接。我们可以使用什么方法来防止重复的 PUT 或 POSTs?客户端设备如何知道服务器在失去连接之前是否处理了它的请求?

我见过 similar posts 这样的,但标记的答案并没有详细说明。我什至不知道从哪里开始。我应该研究缓存(ETag,最后修改)还是某种类型的握手?

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

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

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

与其他高级 API 框架一样,您受制于 API 提供的内容,看起来设计者没有考虑连接中止。

解决此问题的最简单方法似乎是对每个 post 使用唯一 ID,并在 re-posting 之前检查服务器是否知道这些 UID。如果服务器没有响应 POST 的 OK,您必须假设连接已断开或出现其他问题。然后在服务器上查询您 post 的 UID,以了解之前的 POST 是否成功,然后再尝试另一个具有相同数据和 UID 的 POST。

可能有一些事务封装可用于 REST,可用于 sql 服务器。 'transaction' 协议将确保 POST 已成功处理或将 'rolled' 返回,如果出现问题。

抱歉,我不太了解 REST。