在Node中创建一个url-form-eoncoded HTTP POST请求,其中请求正文具有非唯一键

时间:2016-10-17 07:14:26

标签: javascript node.js http post xmlhttprequest

我想用Node请求库发出HTTP POST请求。请求正文具有多个非唯一键。问题是我不能将POST主体表示为Javascript对象,因为密钥会被覆盖。请求是url-form-encoded。有没有办法以一种我不必依赖于使用Javascript对象来表示我的请求主体参数的方式来表示请求库中的数据?

样品申请正文:

{
 dateFrom:2015-10-07,
 dateTo:2015-10-17,
 columns[]:exc_flags,
 columns[]:exc_currency,
 timeZone:55,
 country[]:25,
 country[]:32,
 country[]:6,
 importance[]:1,
 importance[]:2,
 importance[]:3,
 category[]:_employment,
 category[]:_economicActivity,
}

此处重复columns[]country[]importance[]category[]个键。

使用请求库进行url-form编码请求的标准语法是:

request.post('http://service.com/upload').form({key:'value'})

如果有效负载中存在非唯一键,则此方法不起作用。

1 个答案:

答案 0 :(得分:1)

您的"多个非唯一键"是数组值。只需将JSON与数组一起用于重复值:

{
  "dateFrom": "2015-10-07",
  "dateTo": "2015-10-17",
  "columns": ["exc_flags", "exc_currency"],
  "timeZone": 55,
  "country": [25, 32, 6],
  "importance": [1, 2, 3],
  "category": ["_employment", "_economicActivity"],
}