如何在GET请求中携带请求体?传递用户排除列表方法问询
多值查询参数拼接
这是最通用的做法,把要排除的内容(比如用户ID)作为同一个参数的多个值传递,后端按约定解析成列表。
两种常见写法:
多个参数键:GET /api/users?exclude=123&exclude=456&exclude=789
逗号分隔值(需要后端支持这种格式):GET /api/users?exclude=123,456,789数组风格查询参数
部分后端框架直接支持数组格式的参数命名,传递时按数组结构来写:
示例:GET /api/users?exclude[]=123&exclude[]=456&exclude[]=789
注意:不同框架的数组参数格式可能有差异,比如有些用exclude=不带括号,或者exclude.0=123这种索引式写法,具体要看后端的兼容情况。URL编码的JSON字符串
如果排除列表结构复杂(比如包含多种筛选条件),可以把列表转成JSON字符串后做URL编码,作为单个参数传递:
原JSON列表:["123","456","789"]
URL编码后:%5B%22123%22%2C%22456%22%2C%22789%22%5D
最终请求地址:GET /api/users?exclude=%5B%22123%22%2C%22456%22%2C%22789%22%5D
后端需要先解码这个字符串,再解析成列表使用。自定义HTTP请求头传递
如果排除列表内容较长,或者不想把参数暴露在URL里,可以放到自定义的HTTP请求头中:
比如设置请求头:X-Exclude-Users: 123,456,789
后端从请求头中读取这个值并解析成列表。
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture

