.net webapi HttpGet vs HttpPost。为什么HttpGet?

时间:2013-06-03 16:58:51

标签: jquery ajax asp.net-web-api

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

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

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

  

(2000个字符(IE的限制。))   Is there a limit to the length of a GET request?

当我一直在编写大量数据时,我很沮丧地通过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时,为什么会出现 GOOD reason ,而POST总是处理任何限制。

我所说的只是关于WEB API .net。我知道你是想通过url字符串请求变量和信息(发送页面到页面)或类似GET可以更容易实现。

1 个答案:

答案 0 :(得分:5)

最终你可以随心所欲地做任何事情,但遵循一些标准是很好的做法 - 不仅仅是为了标准,而是为了让你的代码可以预测和易于使用。

当您呼叫您的API RESTful时,人们会认为,例如:

  • 任何GET请求都会获取数据 - 不能修改,不能删除,不能创建

  • 任何POST请求都将创建资源

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

  • DELETE将删除资源

这使每个人的生活更轻松,并且是您和您的客户之间的契约。

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

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