web-dev-qa-db-ja.com

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何らかの理由で...どうすれば修正できますか?

9
Paul de Koning

documentation form 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);
});
8
Ivan Vasiljevic