我正在开发一个允许用户按位置过滤的应用程序。为此,我将城市过滤器添加到查询参数中。例如,如果有人选择
California
,我会将其编码为 Base64,然后将过滤器添加到我的查询参数中。这是编码的过滤器对象:
[{city: "San Francisco", state: "California", country: "USA"}, {...}, {...}]
这是编码后请求的样子:
http://localhost:3001/api/v1/companies?offset=0&limit=50&locs=W3siY2l0eSI6IkFsYW1lZGEiLCJzdGF0ZSI6IkNhbGlmb3JuaWEiLCJjb3VudHJ5IjoiVW5pdGVkIFN0YXRlcyJ9LHsiY2l0eSI6IkFuYWhlaW0iLCJzdGF0ZSI6IkNhbGlm...
但是,经过一定数量的过滤器后,我遇到了标头限制(即我无法将更多信息放入请求标头中)。
处理此问题的最佳实践方法是什么?我应该发送
POST
请求吗?还是会让人皱眉?
仅供参考——用户可以单击进入一个州并选择/取消选择特定城市。例如,某人可以点击
California
并取消选中 San Francisco
和 Los Angeles
。
请求 URI 不被视为标头,但您仍然可能会遇到限制。通常建议保持在 2048 字节以下。
如果您超出此范围,请切换到不同的 HTTP 方法(
QUERY
、POST
)并使用请求正文。