Node.js 在NodeJS中使用多部分/表单数据进行POST
我需要从我的NodeJS服务向Cisco Webex room发布一个本地映像。对于本地文件,您需要执行Node.js 在NodeJS中使用多部分/表单数据进行POST,node.js,Node.js,我需要从我的NodeJS服务向Cisco Webex room发布一个本地映像。对于本地文件,您需要执行多部分/表单数据请求,而不是中提到的JSON 卷发看起来像 curl --request POST \ --header "Authorization: Bearer ACCESS_TOKEN" \ --form "files=@/home/desktop/example.png;type=image/png" \ --form "roomId=Y2lzY2....." \ -
多部分/表单数据
请求,而不是中提到的JSON
卷发看起来像
curl --request POST \
--header "Authorization: Bearer ACCESS_TOKEN" \
--form "files=@/home/desktop/example.png;type=image/png" \
--form "roomId=Y2lzY2....." \
--form "text=example attached" \
https://api.ciscospark.com/v1/messages
但我不知道如何将其转换为nodeJS请求格式。我尝试使用CURL-to-Node请求转换器,但它似乎无法处理multipart/formdata
类型。请建议
编辑:在做了一些研究之后,我想出了下面的代码
var request = require('request');
var fs = require('fs');
var params = { roomId: ROOMID,
text: "hello....",
files: {
value: fs.createReadStream(PATH_WO_FILENAME),
options: {
filename: 'image.jpg',
contentType: 'jpg'
}
}
};
var headersWebex = {
'Authorization': 'Bearer MY_BOT_ACCESS_TOKEN',
'Content-Type': 'multipart/form-data' }
request.post({
headers: headersWebex,
url: 'https://api.ciscospark.com/v1/messages',
method: 'POST',
body: params
}, function(error, response, body){
console.log(body);
});
但这是一个错误
undefined
_http_outgoing.js:642
throw new TypeError('First argument must be a string or Buffer');
好的,这就是我是如何做到的。我基本上需要深入研究@Evan提到的问题
var request = require('request');
var fs = require('fs');
var roomID = 'MY_ROOM_ID'
var params = {
roomId: roomID,
text: "hello....",
files: {
value: fs.createReadStream('./image.jpg'),
options: {
filename: 'image.jpg',
contentType: 'image/jpg'
}
}
};
var headersWebex = {
'Authorization': 'Bearer MY_BOT_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
request.post({
headers: headersWebex,
url: 'https://api.ciscospark.com/v1/messages',
method: 'POST',
formData: params
}, function(error, response, body){
if (error)
console.log(error)
console.log(body);
});
你的代码看起来像什么?Express有一个主体解析器模块,可以为您解决这个问题,但谁知道您是否使用了服务器端。@Brad添加了代码您在请求文档中看到过这一部分吗?它似乎涵盖了这一点-