如何发送重复的 POST 参数
How to send duplicate POST parameters
我正在尝试为我经常使用的网站编写替代方案 UI。我正在用 Node.js 使用 request
和 cheerio
来抓取网页数据。
但是,当我尝试向该站点发送 POST 请求时出现问题。我想在此处检索 类 的列表而不先通过此页面,但是开发工具中显示的正常 post 参数的结构如下:
sel_subj:dummy
bl_online:FALSE
sel_day:dummy
term:201630
sel_subj:ACTG
sel_inst:ANY
sel_online:
sel_crse:
begin_hh:0
begin_mi:0
end_hh:0
end_mi:0
我可以修改任何其他值(term
、sel_crse
等),但是 sel_subj
没有兼容的值,所以服务器只使用默认值值。
我一直在为 request
中的 form
对象参数尝试不同的值,但其中 none 有效:
sel_subj: ["M", "dummy"]
sel_subj: ["dummy", "M"]
sel_subj: "M"
sel_subj: "dummy,M"
sel_subj: "M,dummy"
sel_subj: "dummy M"
sel_subj: "M dummy"
sel_subj: "dummy, M"
sel_subj: "M, dummy"
我想弄清楚 POST 请求中的重复字段是什么意思,服务器期望什么,以及如何使用 request
重现它
如果参数名可以重复,请求体可以自己设计:
var headers = {'content-type' : 'application/x-www-form-urlencoded'};
var body = [];
var params = [
{ sel_subj:'dummy' }, // duplicates
{ bl_online:false },
{ sel_day:'dummy' },
{ term:'201630'},
{ sel_subj:'ACTG'}, // duplicates
{ sel_inst:'ANY'},
{ sel_online: null},
{ sel_crse: null},
{ begin_hh:0},
{ begin_mi:0},
{ end_hh:0},
{ end_mi:0}
];
params.forEach( function(p) {
body.push( require('querystring').stringify(p) );
});
var r = request.post({ url:'http://localhost/api/',
headers: headers,
body:body.join('&')
});
我正在尝试为我经常使用的网站编写替代方案 UI。我正在用 Node.js 使用 request
和 cheerio
来抓取网页数据。
但是,当我尝试向该站点发送 POST 请求时出现问题。我想在此处检索 类 的列表而不先通过此页面,但是开发工具中显示的正常 post 参数的结构如下:
sel_subj:dummy
bl_online:FALSE
sel_day:dummy
term:201630
sel_subj:ACTG
sel_inst:ANY
sel_online:
sel_crse:
begin_hh:0
begin_mi:0
end_hh:0
end_mi:0
我可以修改任何其他值(term
、sel_crse
等),但是 sel_subj
没有兼容的值,所以服务器只使用默认值值。
我一直在为 request
中的 form
对象参数尝试不同的值,但其中 none 有效:
sel_subj: ["M", "dummy"]
sel_subj: ["dummy", "M"]
sel_subj: "M"
sel_subj: "dummy,M"
sel_subj: "M,dummy"
sel_subj: "dummy M"
sel_subj: "M dummy"
sel_subj: "dummy, M"
sel_subj: "M, dummy"
我想弄清楚 POST 请求中的重复字段是什么意思,服务器期望什么,以及如何使用 request
如果参数名可以重复,请求体可以自己设计:
var headers = {'content-type' : 'application/x-www-form-urlencoded'};
var body = [];
var params = [
{ sel_subj:'dummy' }, // duplicates
{ bl_online:false },
{ sel_day:'dummy' },
{ term:'201630'},
{ sel_subj:'ACTG'}, // duplicates
{ sel_inst:'ANY'},
{ sel_online: null},
{ sel_crse: null},
{ begin_hh:0},
{ begin_mi:0},
{ end_hh:0},
{ end_mi:0}
];
params.forEach( function(p) {
body.push( require('querystring').stringify(p) );
});
var r = request.post({ url:'http://localhost/api/',
headers: headers,
body:body.join('&')
});