正在中止更新数据的请求

时间:2019-04-03 18:44:40

标签: android retrofit okhttp3

说我有一个用户,他们正在尝试更新其个人资料数据。请求已发送,但互联网速度太慢或已断开连接,请求一直持续下去。

在Retrofit和OkHttp中,取消请求很容易。但是当它是POST / PATCH / PUT / DELETE时,请求结果将被忽略,但是服务器仍将完全处理请求(更新数据)。

这意味着如果用户取消更新并且更新了数据,则成功更新的响应将被忽略。

是否可以中止请求并终止为处理请求而执行的后端代码(在我的情况下为PHP)?

2 个答案:

答案 0 :(得分:0)

这是一个常见的问题,它也可能以其他方式发生,例如,您提交了一些东西,数据被服务器处理,结果没有返回到设备(数据包在设备上丢失了)。回来)。

在这些情况下,您需要更好的UX设计来处理这些问题,例如,不允许取消API,或者如果这样做,则调用具有取消功能的另一个API,并让服务器知道用户已撤消其决定,并且数据必须还原。

答案 1 :(得分:0)

首先让我们了解一下由于连接速度缓慢而需要取消请求的要求,而且您已经有一段时间没有看到服务器的响应了。

  

就您而言,它也是个人资料更新和最终目标。即使你拍   请求,但没有收到回复,您会立即获得回复   加载个人资料,甚至在尝试更新后,您将覆盖   具有新信息的已更新个人资料。

     

您无需增加检查请求的额外负担   客户端在服务器端代码上发送的取消事件将于明天开始   它可能需要服务于众多受众。

     

希望这可以澄清,因为进行数据库滚动的安全解决方案   背,有人去支付解决方案使用的影子更新   不适合这种情况。

在注册的情况下:即使您发送的请求已得到处理,在下次尝试发送时也会收到已注册的错误。因此,只需登录即可。上载内容,您确定已经存在或让用户再次更新内容也没有关系,他有权更新数据。

与其他方案实现相同,您必须检查是否已经存在。

在取消请求的情况下:人们不会遵循此要求,因为这会产生额外费用,并且需要加倍努力。

现在希望这可以澄清您要查找的内容。