问题描述
我今天遇到了一个问题。
我有一个用 Node JS 制作的 API,但在某些端点中,我需要接收一些带空格的参数。
这些端点是 GET,但我的问题是,在 GET 端点中使用 form-url-encoded body 是一个好习惯吗?
将带空格的参数传递给 GET 端点的最佳方式是什么?
解决方法
您不应将请求正文与 GET
一起使用。请求正文是/应该被忽略,许多图书馆会丢弃它们。
GET
的目的是获取指定 URI 处资源的表示,仅此而已。有关您希望接收其状态的资源的所有信息都应在 URI 中。不过,您可以对 URI 中的空格进行编码,只需使用 url 编码库即可。
如果您在谈论“参数”,对我来说这听起来更像是 RPC 调用,而 POST
可能更适合于此。 POST
确实允许请求正文,而 URL 编码或 JSON 正文也适用于此。
将带空格的参数传递给 GET 端点的最佳方式是什么?
表单 urlencoded 查询参数是最常见的答案。
/foo?bar=look+at+the+encoded+spaces
参见:[application/x-www-form-urlencoded][1]
基本框架是参数在概念上是所请求资源标识符的一部分。