在Postman中执行Flux查询获取JSON输出时遇请求解码错误的解决
问题解决步骤
1. 修正请求体格式(解决解码错误)
InfluxDB的API要求请求体必须包含query字段(存放Flux查询字符串),你之前的AST格式写法不符合规范,而且JSON里重复的filter键会被覆盖,导致过滤逻辑失效。推荐用更直观的Flux查询字符串格式:
{ "query": "from(bucket: \"prod_jmeter\") |> range(start: 2020-03-29T07:44:00.341Z, stop: 2054-03-29T07:44:00.341Z) |> filter(fn: (r) => r._measurement == \"requestsRaw\" and r._field == \"responseTime\") |> group(columns: [\"_field\"]) |> count()" }
如果坚持用AST格式,需要合并两个filter为一个逻辑判断,同时确保结构完全符合InfluxDB的AST规范,但字符串形式更易维护。
2. 修正请求头(实现JSON输出)
你当前的Accept头设置为application/csv,会返回CSV格式数据,改成application/json就能获取JSON输出:
Authorization: Token <token_Id>Accept: application/jsonContent-type: application/json
3. Postman操作验证
把修正后的请求体粘贴到Postman的Body-raw-JSON选项中,设置好上述请求头,发送POST请求到你的InfluxDB API端点(通常为http://<influxdb-host>:8086/api/v2/query)即可。
错误原因说明
- 解码错误是因为请求体未包含API要求的
query或正确结构的AST字段,你之前的格式不符合InfluxDB的请求规范。 - JSON不允许重复键,第二个
filter会覆盖第一个,导致过滤条件只保留了_field的判断,丢失了_measurement的过滤逻辑。
内容的提问来源于stack exchange,提问作者Udara Manupriya
相关产品推荐
相关产品推荐

