我应该在 GET 请求中使用 body url 编码吗?

Should I use body url encoded on GET request?

我今天遇到了一个问题。

我有一个用 Node JS 制作的 API,但在某些端点,我需要接收一些带空格的参数。

这些端点是 GET,但我的问题是,在 GET 端点中使用表单-url-编码正文是一种好的做法吗?

将带空格的参数传递到 GET 端点的最佳方式是什么?

您不应将请求主体与 GET 一起使用。请求正文 are/should 被忽略,许多图书馆丢弃它们。

GET的目的是获取指定URI处资源的表示,没有别的。有关您要接收其状态的资源的所有信息都应该在 URI 中。不过,您可以对 URI 中的空格进行编码,只需使用 url-编码库即可。

如果您谈论的是 'parameters',这对我来说听起来更像是一个 RPC 调用,而 POST 可能更合适。 POST 确实允许请求正文并且 URL 编码或 JSON 正文都可以。

What must be the best way to pass parameters with spaces to a GET endpoint?

表单 urlencoded 查询参数是最常见的答案。

/foo?bar=look+at+the+encoded+spaces

参见:[application/x-www-form-urlencoded][1]


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