在nodejs中使用DUPLICATE KEYS发送多形式数据

时间:2018-04-10 03:51:56

标签: node.js forms http request

我需要将一个带有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库可以让我发送带有重复多表单键的请求?

我真的用这个把头撞在了墙上..

2 个答案:

答案 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);
  });