可以使用HTTP POST获取数据 - 不创建新数据

时间:2017-02-14 20:49:21

标签: http post get xmlhttprequest

两件事:

首先,我是否认为可以使用HTTP POST检索现有信息?如果是这样,响应代码是什么?

其次,如果可以使用POST,那么什么是Web.API应用程序中URL的格式,以及应该将哪些数据发送到服务器。

公司安全性不会阻止使用HTTP Get,但由于某些安全问题,它们强烈反对它。 OTOH,当我想获取现有信息时,我真的不喜欢命名方法PostInformation()。

由于

1 个答案:

答案 0 :(得分:1)

  

我是否认为可以使用HTTP POST检索现有信息?

来自RFC 7231, section 4.3.3

  

POST方法请求目标资源根据资源自身的特定语义处理请求中包含的表示。

这个暗示服务器改变状态而不严格要求它。所以,是的,虽然不是很鼓励,但这样做是安全的。事实上,许多Web应用程序过去都是这样做的,以规避GET方法的限制,例如overly long URLs

  

Web.API应用程序中URL的格式是什么,以及应该将哪些数据发送到服务器。

网址与query string相同。如果您将请求的正文标记为application/x-www-form-urlencoded,则可以使用通常用于查询字符串的相同字符串填充它。对于更复杂或二进制数据,您应该使用multipart/formdata(请参阅this answer)。

  

当我想获取现有信息

时,我真的不喜欢命名方法PostInformation()

这几乎不是问题。我理解你的担忧,但请考虑一下:你最终做的是获取数据。 如何这样做是正在使用的协议的实现细节。没有什么可以阻止您命名方法PostInformation()。此外,如果实施更改并且您突然使用GET而不是POST,您该怎么做?将PostInformation()的所有出现重构为GetInformation()