使用请求模块并将正文传递给下一个请求
Using request module and passing the body to the next request
我正在使用请求获取图像:
request(req.body.imageUrl, {encoding: null}, function(error, response, body) {
然后我想使用正文传递给使用多部分表单的 api 并发送该图像(现在在正文中)。我不想将文件写入磁盘,然后再次从磁盘读取流。基本上想通过body的Buffer进入下一个请求的formData,但是不行
因此,对于下一个请求中的选项,我有:
const options = {
method: "POST",
url: coreURL,
headers: {
"Content-Type": "multipart/form-data"
},
formData : {
file : new Buffer.from(body,'binary')
}
};
如果我将正文写入文件,这不起作用 fs.writeFileSync(fileName, body, 'binary');
然后读入选项formData : { file : fs.createReadStream(fileName)}
它可以工作,但我不能使用磁盘,所以需要另一种方法将正文作为多部分表单数据传递到下一个 post。
有什么想法吗?
概念验证:
let request = require('request');
request.post({
url: "http://httpbin.org/anything",
formData: {
myfile: request.get("https://www.gravatar.com/avatar/f056d36f9e273fd4740ec8a5cea1348a"),
}
},
function (err, req, body) {
console.log(body);
}
);
我正在使用请求获取图像:
request(req.body.imageUrl, {encoding: null}, function(error, response, body) {
然后我想使用正文传递给使用多部分表单的 api 并发送该图像(现在在正文中)。我不想将文件写入磁盘,然后再次从磁盘读取流。基本上想通过body的Buffer进入下一个请求的formData,但是不行
因此,对于下一个请求中的选项,我有:
const options = {
method: "POST",
url: coreURL,
headers: {
"Content-Type": "multipart/form-data"
},
formData : {
file : new Buffer.from(body,'binary')
}
};
如果我将正文写入文件,这不起作用 fs.writeFileSync(fileName, body, 'binary');
然后读入选项formData : { file : fs.createReadStream(fileName)}
它可以工作,但我不能使用磁盘,所以需要另一种方法将正文作为多部分表单数据传递到下一个 post。
有什么想法吗?
概念验证:
let request = require('request');
request.post({
url: "http://httpbin.org/anything",
formData: {
myfile: request.get("https://www.gravatar.com/avatar/f056d36f9e273fd4740ec8a5cea1348a"),
}
},
function (err, req, body) {
console.log(body);
}
);