【发布时间】:2013-05-29 21:52:02
【问题描述】:
为什么在 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 时,为什么会是一个好的理由,而 POST 却始终不受任何限制。
我说的只是 WEB API .net。我知道您是否想通过 url 字符串(通过页面发送到页面)或类似 GET 的方式来请求变量和信息,这样更容易实现。
【问题讨论】:
-
您可能需要搜索一下什么是 REST 服务,因为 GET 和 POST 的用途完全不同。基本上,GET 用于从您的服务中检索数据,而 POST 用于将数据发送到您的服务。
-
HttpPost通常也不会被浏览器的 AJAX 缓存。如果需要,通过使用 GET,您的请求对缓存更加友好。 -
@Newbo.O 好吧,虽然这是真的,但它们都可以毫无区别地工作,都可以用于检索数据,唯一的区别是它们如何通过网络传输,但这是一种“哲学”假设而不是技术决定。而 vcsjones 则指向一个更真实的场景。
标签: jquery ajax asp.net-web-api