我尝试将发布请求发送到API,并且发布参数应为array,
这是如何在cURL中发送它

curl http://localhost:3000/check_amounts
  -d amounts[]=15 \
  -d amounts[]=30


我试图使用请求模块在Node.js中做到这一点

request.post('http://localhost:3000/check_amounts', {
        form: {
                'amounts[]': 15 ,
                'amounts[]': 30
              }
    }, function(error, response, body) {
        console.log(body)
        res.json(body);
    });


但是第二个量会覆盖第一个量,API会得到如下结果:amounts = [30]

然后我尝试用不同的方式发送

 request.post('http://localhost:3000/check_amounts', {
            form: {
                    'amounts[]': [ 15 , 30]
                  }
        }, function(error, response, body) {
            console.log(body)
            res.json(body);
        });


但结果不符合预期amounts = [{"0":15},{"1":30}]

注意:标头应包含“ Content-Type”:“ application / x-www-form-urlencoded”而非“ application / json”

有人能解决这个问题吗?

最佳答案

如果您阅读请求手册,这很容易。您要做的就是用querystring而不是object替换表格,在您的情况下,应为:

amounts=15&amounts=30

我唯一不确定的是上面的表达式是否可以在您的Web服务器中使用。据我所知,它在Java struts中效果很好。因此,如果没有,您可以尝试
amounts[]=15&amounts[]=30代替。希望对您有所帮助。

09-11 01:40