我试图提出一个由表单数据组成的帖子请求。但是API规范说表单数据应该如下所示:
names[]=公司名称1&names[]=公司名称2
我试过了
form: {'names[]': "google" ,'names[]': "kraft", 'fields[]': "Country",
'fields[]':"ISIN"}但是服务器只接收第一个names[]和fields[]。第二个被剪掉了。
服务器: Post数据:{“名称”=>“卡夫”、“字段”“=>”ISIN“}
然后,我尝试添加数组作为值:
form: {'names[]': ["google", "kraft"], 'fields[]': ["Country","ISIN"] }服务器: Post数据:{“=>{”0“=>”=>“google”、“1”=>“卡夫”}、“字段”“=>{”=>“Country”、"1"=>"ISIN"}}
查看服务器请求,我发现它接受以下格式的主体:
BODY: names[]=google&names[]=kraft&fields[]=ISIN&fields[]=Country
但是我不能在我的节点-客户端构建这样的表单。
我正在使用这个库:https://www.npmjs.com/package/request
*编辑*
这首歌真的很棒:form: "names[]=google&names[]=kraft&fields[]=Country&fields[]=ISIN"
现在的问题是如何使用https://github.com/form-data/form-data来形成这个字符串。
我试过没有附加不起作用。
发布于 2019-10-10 10:25:28
建议键是唯一的,并且在命名中不要有括号。在您的例子中,names[]和fields[]重复它们自己
const form = {
form: {
names: ['google', 'kraft'],
fields: ['Country', 'ISIN']
}
};
request.post('http://yourwebsite.com', form);编辑
names[]=google&names[]=kraft&fields[]=ISIN&fields[]=Country 可能有效,但取决于框架/语言,将只考虑一个条目(第一项或最后一项)。所以它相当于
names[]=google&fields[]=ISIN // considering first are chosen正如你所看到的
服务器: Post数据:{“名称”=>“卡夫”、“字段”“=>”ISIN“}
括号被过滤掉了,所以这也是同样的情况。
names=google&fields=ISIN // considering first are chosenhttps://stackoverflow.com/questions/58320745
复制相似问题