Mac*_*_89 0 javascript node.js
我有一个request url接受重复查询字符串来发送数据的。格式为:
http://<rest_url>/resource?scheduledate=2018-02-25&scheduledate=2018-03-02
Run Code Online (Sandbox Code Playgroud)
这将检索两个日期之间的数据。现在的问题是如何发送查询字符串。我在用着requests。我的代码是
var options = {
url: rest_url ,
// this will not work since you cant have duplicate keys
qs:{
'scheduledDate':moment().add(-1,'days').format('YYYY-MM-DD'),
'scheduledDate':moment().add(1,'days').format('YYYY-MM-DD');
},
auth: {
'bearer': token[0]['access_token']
}
}
// **************** Rest Request to API *************************
request.get(options, function(error, response, body) {
if (!error && response.statusCode === 200) {
Run Code Online (Sandbox Code Playgroud)
现在如何发送重复的查询字符串?我尝试做
var yesterday = moment().add(-1,'days').format('YYYY-MM-DD');
var OneDayinFuture=moment().add(1,'days').format('YYYY-MM-DD');
var query_string =yesterday+ "&scheduledDate="+OneDayinFuture;
var options = {
url: rest_url ,
qs:{
'scheduledDate':query_string
},
auth: {
'bearer': token[0]['access_token']
}
}
Run Code Online (Sandbox Code Playgroud)
端点抛出错误。
我知道可能有一个选项,我可以只附加query_stringURL,但这不起作用,因为我递归地跟踪下一页链接。因此,它必须是一个查询字符串,除非有明确的出路。我有点被困在这里了。
将两个值放入一个数组中并传递{ indices: false }选项qsStringifyOptions:
var options = {
url: rest_url,
qs: {
scheduledDate: [ date1, date2 ],
},
qsStringifyOptions: { indices: false },
//...
};
Run Code Online (Sandbox Code Playgroud)
这记录在qs 自述文件的字符串化部分中:
当数组被字符串化时,默认情况下它们会被赋予显式索引:
Run Code Online (Sandbox Code Playgroud)qs.stringify({ a: ['b', 'c', 'd'] }); // 'a[0]=b&a[1]=c&a[2]=d'您可以通过将
indices选项设置为来覆盖此设置false:Run Code Online (Sandbox Code Playgroud)qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); // 'a=b&a=c&a=d'
| 归档时间: |
|
| 查看次数: |
1153 次 |
| 最近记录: |