NodeJS请求如何发送multipart/form-data POST请求

新手上路,请多包涵

我正在尝试将 POST 请求发送到请求中包含图像的 API。我正在使用请求模块执行此操作,但我尝试的所有操作都不起作用。我当前的代码:

 const options = {
    method: "POST",
    url: "https://api.LINK.com/file",
    port: 443,
    headers: {
        "Authorization": "Basic " + auth,
        "Content-Type": "multipart/form-data"
    },
    form : {
        "image" : fs.readFileSync("./images/scr1.png")
    }
};

request(options, function (err, res, body) {
    if(err) console.log(err);
    console.log(body);
});

但是请求使用 Content-Type: application/x-www-form-urlencoded 出于某种原因……我该如何解决这个问题?

原文由 Paul de Koning 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
1 个回答

文档 表格中 multipart/form-data 请求正在使用 form-data 库。所以你需要提供 formData 选项而不是 form 选项。

 const options = {
    method: "POST",
    url: "https://api.LINK.com/file",
    port: 443,
    headers: {
        "Authorization": "Basic " + auth,
        "Content-Type": "multipart/form-data"
    },
    formData : {
        "image" : fs.createReadStream("./images/scr1.png")
    }
};

request(options, function (err, res, body) {
    if(err) console.log(err);
    console.log(body);
});

原文由 Ivan Vasiljevic 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题