如何防止重复的http请求?

时间:2016-01-26 17:21:13

标签: caching asp.net-web-api2 compact-framework

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

我已经看过这样的similar posts,但明确的答案并没有详细说明。我甚至不知道从哪里开始。我应该考虑缓存(ETag,最后修改),还是某种类型的握手?

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

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

1 个答案:

答案 0 :(得分:3)

我没有使用REST,但就我读到的信息而言,没有简单的方法可以获得确认并避免重复发布。

与其他高级API框架一样,您与API提供的内容相关联,看起来设计师并未考虑连接中止。

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

可能存在一些可用于sql server的REST事务封装。 A'交易'协议将确保POST已成功处理或将被滚动'如果事情失败了。

很抱歉,但我对REST知之甚少。