我们正在设计一个 iPhone 应用程序,它将回调 Tomcat 中运行的 RESTful 服务。我们需要发送许多查询参数,并且已经超出了手机允许的最大值。
使用带有主体参数的 PUT 调用是否是 RESTful,即使意图不修改服务器? POST 似乎不正确,因为它不是幂等的,而 PUT 是幂等的(因此更类似于 GET 的行为)。
谢谢。
最佳答案
您有三个最大限度地符合 HTTP 的选项:
首先,您可以选择发送以某种方式压缩的参数以形成较短的 URL。
其次,GET
中没有任何内容表明您不能在请求中发送消息正文,无论采用 Content-Type
或 -Length
你选择。并非所有服务器都支持此功能,但 HTTP 协议(protocol)本身支持。
第三,您可以将参数 POST 到 /queries/
资源,并使用 201 Created
和新 URL(例如 /queries/78a65g82
)位于 Location
响应 header 中,然后客户端对其调用 GET
(重复,甚至在 Ranges
中,如果是的话)一个好处)来检索结果。
关于rest - 使用“许多”参数调用 RESTful 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3841708/