为什么在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可以更容易实现。
答案 0 :(得分:5)
最终你可以随心所欲地做任何事情,但遵循一些标准是很好的做法 - 不仅仅是为了标准,而是为了让你的代码可以预测和易于使用。
当您呼叫您的API RESTful时,人们会认为,例如:
任何GET请求都会获取数据 - 不能修改,不能删除,不能创建
任何POST请求都将创建资源
PUT请求会更新资源,您可以根据需要多次执行它们而不会产生副作用
DELETE将删除资源
这使每个人的生活更轻松,并且是您和您的客户之间的契约。
我强烈建议您阅读有关REST设计API的资源 - 您将了解人们遵循惯例的原因: