我应该使用在 GET 请求上编码的正文 url 吗?

问题描述

我今天遇到了一个问题。

我有一个用 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]


基本框架是参数在概念上是所请求资源标识符的一部分。