我需要将一个带有NodeJS的POST请求发送到一个API,该API要求多次使用相同的多表单键。
这是所需操作的CURL示例:
curl -H "Authorization: Bearer MY_ACCESS_TOKEN" -i -X POST -F "whitespace=1" \
-F "terms[]=lait" -F "definitions[]=milk" -F "terms[]=petits pois" \
-F "definitions[]=peas" -F "title=My first set via the API" \
-F "lang_terms=fr" -F "lang_definitions=en" \
https://api.quizlet.com/2.0/sets
正如您所看到的,键"术语[]"和#34;定义[]"在同一个请求中多次使用。
我尝试过使用nodejs request / http / multi-form库但没有成功,因为大多数都需要一个JavaScript对象来定义表单数据,当然这些数据不能接受重复的密钥。
除了对cURL使用exec()命令之外,是否有任何nodejs库可以让我发送带有重复多表单键的请求?
我真的用这个把头撞在了墙上..
答案 0 :(得分:0)
尝试使用request
库
let options = { method: 'POST',
url:url,
headers:
{
'cache-control': 'no-cache',
authorization: 'Bearer '+accessToken ,
'content-type': 'application/json'
},
body:
{ //your array here
terms:['terms'] ,
definitions:['milk']
},
json: true
};
request(options, function (error, response, body) {
if(error){
console.log("Error ",error);
}
console.log("Response",body);
})
答案 1 :(得分:0)
独具一格:
var unirest = require('unirest');
var req = unirest('POST', 'YOUR URL')
.headers({
'Content-Type': 'multipart/form-data; boundary=--------------------------846713359653092950719061',
'Authorization': 'YOUR AUTH'
})
.field('AAA', 'VAL1')
.field('AAA', 'VAL2')
.field('AAA', 'VAL3')
.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.raw_body);
});