10

即使我的操作是在数据库上执行删除方法,我也总是使用 HttpGet 或 HttpPost。

那我应该使用什么 HttpDelete/HttpPut ?

4

3 回答 3

16

Web 浏览器仅支持 GET 和 POST,因此如果您正在构建网站,则无需 PUT 或 DELETE。但是,如果您正在构建一个 RESTful api,如果您希望您的用户能够放置和/或删除东西,那么 PUT 和 DELETE 是您的选择。

编辑:似乎浏览器在其 XMLHttpRequest 的实现中确实支持 DELETE 和 PUT。因此,您可以在 ajax 请求中使用它们。但是,HTML 形式不支持它们。

于 2012-06-04T21:37:03.720 回答
3

如果您构建OData服务。

HTTP DELETE - 删除指定资源所代表的实体数据。请求或响应消息中不存在有效负载。

HTTP PUT - 将请求资源中的现有实体数据替换为请求消息的有效负载中提供的新数据。( msdn )

Scott Hanselman的演讲可能很有趣。(我还没看过。)

如果您订阅了 OData,还有几场关于 Pulsight 的讲座。

于 2012-06-04T20:58:27.090 回答
2

我想您已经了解DELETErequest 的使用,但PUT有点不同。

如果我在服务器中创建一个新资源并且可以访问它的 URI 是由我决定的,那么我会选择PUT. 在大多数情况下,URI 由服务器决定,因此POST用于创建,PUT通常用于更新。

最后一点是,就像GET两者一样DELETEPUT是幂等的,这意味着客户端连续发送请求多少次,服务器的状态应该更改为与第一个请求相同。

于 2012-06-05T02:11:36.160 回答