我发送一个 POST 请求来创建一个对象。该对象已在服务器上成功创建,但我无法接收响应(丢弃在某处),因此我尝试再次(一次又一次)发送 POST 请求。结果是服务器端有很多重复的对象。
处理该问题的官方方法是什么?我认为这是一个非常普遍的问题,但我不知道它的确切名称,所以无法谷歌它。谢谢。
最佳答案
在 REST 术语中,这就是 POST
的接口(interface)方式。用于创建对象(PUT
用于修改,DELETE
用于删除,GET
用于检索)被调用,POST
操作被认为是不安全的和非幂等的,因为其他类型的请求的第二个操作对对象的收集没有影响。
我怀疑是否有一种“官方”的方式来处理这个问题,但可能有一些设计模式可以处理它。例如,这两种替代方案可能会在某些情况下解决此问题:
POST
之前向它发出一次性使用 token 请求,通常在客户端加载带有输入表单的页面时。第一个POST
创建一个对象并将 token 标记为已使用。第二个POST
将看到 token 已被使用,您可以回答“是的,是的,好的,好的!”错误或成功消息。 有用链接where you can read more about REST .
关于web-services - 如何避免向 Web 服务发送 2 个重复的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19769459/