如何在params中传递json数组以获取nodejs中的rest api

问题描述 投票:0回答:1

我有一个 GET API,它在输入中包含数组。 我想在我的 node.js 项目中调用该 API。 我尝试了很多选择,但没有一个有效。 这是我的 REST 请求。

let request = await Request.get(
    `url?arr=1234,1235`,
    {
    headers: {"Content-Type": "application/json" }
    }
    );

但是收到了不好的请求。

这是我收到的 CURL。

curl --location --request GET 'url' \
--header 'Content-Type: application/json' \
--data '
{
    "arr":["1234","1235"]
}

请帮忙。

我尝试使用 POST 请求而不是 GET。

我试过了

url?arr[]=1234,1235

我试过了

url?arr=["1234","1235"]

我试过了

url?arr="1234","1235"

我试过了

url?params={arr:["12551138844"]

node.js arrays rest get
1个回答
0
投票

您必须使用

node:querystring
模块来构建查询参数。如果您使用 ESM,我假设您正在使用 commonJS,只需更改导入即可。

根据 RFC 7231 第 3.1.5.5 节

Content-Type
仅应为 PUT 和 POST 请求设置 HTTP 标头,GET 请求不需要设置

const queryBuilder = require('node:querystring');
const params = queryBuilder.stringify({arr:[1,2]}); // gives arr=1&arr=2

let request = await Request.get('url?'+params);

NODEJS 文档

© www.soinside.com 2019 - 2024. All rights reserved.