You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何在GET请求参数中传递JSON数组?

解决GET API接收数组参数的调用问题

首先看你提供的CURL示例,这个API虽然用的是GET方法,但要求在请求体中传递JSON格式的数组参数——这不符合HTTP标准规范,但部分服务端会这样实现。你之前的尝试要么是把数组放在URL参数里,要么用了POST方法,都不符合这个API的要求。

正确的调用方式(以常用库为例)

1. 使用 axios 库

如果项目用的是axios,需要在GET请求中指定data字段传递请求体:

const axios = require('axios');

try {
  const response = await axios.get('你的API地址', {
    headers: { "Content-Type": "application/json" },
    data: {
      arr: ["1234", "1235"]
    }
  });
  console.log(response.data);
} catch (error) {
  console.error(error.response.data);
}

2. 使用 request-promise 库

若使用request-promise,需要显式配置请求方法、body和json选项:

const rp = require('request-promise');

try {
  const response = await rp({
    method: 'GET',
    uri: '你的API地址',
    headers: { "Content-Type": "application/json" },
    body: {
      arr: ["1234", "1235"]
    },
    json: true // 自动序列化body为JSON,并解析响应
  });
  console.log(response);
} catch (error) {
  console.error(error);
}

为什么之前的尝试失败?

  • 最初的代码把数组用逗号拼接放在URL参数arr=1234,1235,但API期望的是JSON数组格式的请求体,而非URL参数。
  • 改用POST请求无效,说明该API仅接受GET方法。
  • 其他URL参数格式(如arr[]、arr=["1234"])都不符合API对参数位置和格式的要求。

注意:并非所有HTTP客户端都支持GET请求带请求体,上述两个库是常用且支持该操作的选择。

内容的提问来源于stack exchange,提问作者akilesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:12:23