【问题标题】:Should I use body url encoded on GET request?我应该使用在 GET 请求上编码的正文 url 吗?
【发布时间】:2021-03-26 14:17:01
【问题描述】:

我今天遇到了一个问题。

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

这些端点是 GET,但我的问题是,在 GET 端点中使用 form-url-encoded body 是一种好习惯吗?

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

【问题讨论】:

    标签: rest get endpoint


    【解决方案1】:

    您不应使用带有GET 的请求正文。请求正文被/应该被忽略,许多图书馆都放弃了它们。

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

    如果您在谈论“参数”,这听起来更像是一个 RPC 调用,而POST 可能更适合于此。 POST 确实允许请求正文和 URL 编码或 JSON 正文都可以。

    【讨论】:

      【解决方案2】:

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

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

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

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


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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-21
        • 1970-01-01
        • 2020-09-20
        • 1970-01-01
        • 2014-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多