为什么在WebApi框架中使用HttpGet而不是HttpPost?
我很清楚 Post 或 Get 类型之间的区别,一个是通过 url,另一个不是(作为基本理解)
但我也知道主要区别(可以在服务器上编辑)是 Post 对发送到服务器的数据大小没有任何限制,而 GET 类型有限制
(2000 characters (IE's limit.)) 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 时,为什么会是一个好理由,而 POST 始终可以在任何限制下工作。
我只讨论 WEB API .net。我知道如果您想通过 url 字符串(通过页面到页面发送)或类似的方式请求变量和信息,GET 可以更容易实现。
最佳答案
最终,您始终可以做任何您想做的事情,但遵循一些标准是很好的做法 - 不仅仅是为了标准,而是为了使您的代码可预测且易于使用。
当您调用 RESTful API 时,人们会假设,例如:
任何 GET 请求都只会获取数据 - 不会修改、不会删除、不会创建
任何 POST 请求都会创建资源
PUT 请求将更新资源,您可以根据需要多次执行它们,而不会产生副作用
DELETE 将删除资源
这让每个人的生活变得更轻松,并且是您和客户之间的一种契约(Contract)。
我强烈建议您阅读此有关 API 的 RESTful 设计的资源 - 您将了解人们遵循约定的原因:
关于jquery - .net webapi HttpGet 与 HttpPost。为什么使用 HttpGet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901944/