3

为什么在 WebApi 框架中使用 HttpGet 而不是 HttpPost?

我很好理解 Post 或 Get 类型之间的区别,一个是通过 url 而另一个不是(作为基本理解)

但我也知道主要区别(可以在服务器上编辑)是 Post 对发送到服务器的数据大小没有任何限制,而 GET 类型有一个限制

(2000 个字符(IE 的限制。)) GET 请求的长度是否有限制?

当我对大量数据进行编码时,有时我对通过 GET 发送超过限制数据大小的数据感到沮丧,并发现服务器发送错误和错误是因为大小,所以我必须更改我的方法以支持POST类型。

namespace somenamespace.Controllers
{
    public class someController : ApiController
    {
        [HttpPost] //<--- change all
        public somenamespace.Class getSomething(string key1, string key2) {
            return new someblabla.Models.Class.Class(key1,key2).getSomething();
        }
    }
}

那么,当有人想要使用 GET 而不是 POST 时,为什么这是一个很好的理由,而 POST 总是在任何限制下工作。

我说的只是 WEB API .net。我知道您是否想通过 url 字符串(通过页面发送到页面)或类似 GET 的方式请求变量和信息,这样更容易实现。

4

1 回答 1

5

最终你可以做任何你想做的事,但遵循一些标准是一个很好的做法——不仅仅是为了标准,而是为了让你的代码可预测和易于使用。

当你调用你的 API RESTful 时,人们会假设,例如:

  • 任何 GET 请求只会获取数据 - 不修改、不删除、不创建

  • 任何 POST 请求都会创建一个资源

  • PUT 请求将更新资源,您可以根据需要多次执行它们而不会产生副作用

  • DELETE 将删除资源

这让每个人的生活更轻松,并且是您和您的客户之间的一种合同。

我强烈建议您阅读有关 API 的 RESTful 设计的资源 - 您将了解人们遵循约定的原因:

http://info.apigee.com/Portals/62317/docs/web%20api.pdf

于 2013-06-03T18:41:42.993 回答