Caching 如何防止重复的http请求?

Caching 如何防止重复的http请求?,caching,asp.net-web-api2,compact-framework,Caching,Asp.net Web Api2,Compact Framework,我们有无线网络。总会有这样一种情况:设备发送请求(GET、PUT或POST),然后失去连接。我们可以使用什么方法来防止重复放置或发布?客户端设备如何知道服务器在断开连接之前是否处理了其请求 我见过这样的情况,但有标记的答案不太详细。我甚至不知道从哪里开始。我应该研究缓存(ETag,上次修改)还是某种类型的握手 客户端设备上有.Net Compact Framework 3.5,并通过其Web API 2端点访问服务器 如果有人能为我指出正确的方向或提供任何建议,我将不胜感激。谢谢。我没有使用RE

我们有无线网络。总会有这样一种情况:设备发送请求(GET、PUT或POST),然后失去连接。我们可以使用什么方法来防止重复放置或发布?客户端设备如何知道服务器在断开连接之前是否处理了其请求

我见过这样的情况,但有标记的答案不太详细。我甚至不知道从哪里开始。我应该研究缓存(ETag,上次修改)还是某种类型的握手

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


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

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

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

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

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


很抱歉,我对REST了解不多。

是的,很大程度上依赖于服务器API来提供一种方法,询问它是否应用了某些东西(执行GET,如果您没有找到404,则执行POST),或者让API基于唯一ID检测重复项并返回一个错误来告诉客户端“我已经有了那个”。