Status-415 Node.js中无效的内容类型指定错误

时间:2019-06-11 04:17:10

标签: javascript node.js json express request

我想知道如何将带有标题的表单数据发送到请求模块。

我有函数getToken,该函数使用标题和formdata进行发布请求,然后响应数据将再次请求新的url并返回数据。

当前返回 { type: 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html', title: 'Unsupported Media Type', status: 415, detail: 'Invalid content-type specified' }

抱歉,无法提供apiurl和密钥


//app.js
var express = require('express');
var router = express.Router();
var helper= require('../help.js');
router.get('/', function (req, res) {
    helper.getToken(req.originalUrl).then(token=>{                        
      helper.getData(token).then(data=>{
         res.send({api:data})
      })
   })
})
//helper.js
module.exports.getToken= function (rquery) {
  return new Promise(async function (resolve, reject) {
    try {
      const form_data = {
        grant_type: 'auth_token',
        auth_token: ''//apikey,
         }
      var headers = {
       "Content-Type": "multipart/form-data",
      };
      url = ``//apiurl1;
      request.post({ url: url, form: form_data, headers: headers },  (e, r, body)  => {
        if (!e) {
         resolve(JSON.parse(body)); 
        }
        else {
          resolve(e);
        }
      });
    }
    catch (err) {
      reject(err);
    }
  })
}
module.exports.getData= function (token) {
  return new Promise(async function (resolve, reject) {
    try {
        const form_data = {
        grant_type: 'refresh_token',
        refresh_token: token.refresh_token,
      }
      var headers = {
        "Content-Type": "multipart/form-data",
        "Authorization":"Bearer "+token.access_token
      };
      url = ``//apiurl2;
      request.post({ url: url, form: form_data, headers: headers },  (e, r, body)  => {
        if (!e) {
         console.log(JSON.parse(body));// returns errors 415
         resolve(JSON.parse(body));
        }
        else {
          resolve(e);
        }
      });
    }
    catch (err) {
      reject(err);
    }
  })
}

1 个答案:

答案 0 :(得分:0)

您发布到的API似乎不支持multipart / form-data。您可以在API上确认Content-Type吗?

编辑:在请求模块https://www.npmjs.com/package/request#multipartform-data-multipart-form-uploads的npmjs页面中找到了此

您要发送的密钥是“表单”。尝试发送“ formData”代替