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

Make a url-form-eoncoded HTTP POST request in Node where the request body has non unique keys

本文关键字:请求 主体 一键 唯一 POST 创建 Node url-form-eoncoded 一个 HTTP      更新时间:2023-09-26

我想用Node请求库发出HTTP POST请求。请求体有多个非唯一键。问题是我不能将POST主体表示为Javascript Object,因为键会被覆盖。请求是url形式编码的。是否有一种方法来表示请求库中的数据,我不需要依赖于使用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格式编码请求的标准语法是:

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

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

您的"多个非唯一键"是数组值。简单地使用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"],
}