下载图像并使用multipart / form-data将其发送到API
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下载图像并使用multipart / form-data将其发送到API相关的知识,希望对你有一定的参考价值。
我正在尝试使用multipart/form-data
将图像从互联网发送到API。
我可以通过使用request.pipe(fs.createWriteStream)
将图像保存在临时文件夹中并使用fs.createReadStream
上传来完成此操作
但是如何在不将其保存在临时文件夹中的情况下执行此操作?
我尝试创建一个新的request
并将身体作为new Buffer
发送,但没有奏效。
额外的信息:
我正在实现Telegram Bot API方法sendPhoto:https://core.telegram.org/bots/api#sendphoto
我正在使用请求模块进行集成:https://github.com/request/request
谢谢。
答案
使用请求节点库,您可以在can get binary content from the resource中设置encoding: null
。因此二进制内容存储在一个对象(Buffer)中。
要使用requestSettings
发送照片,您将执行以下操作:
node-telegram-bot
另一答案
我有同样的问题,我使用请求承诺库解决了下一个代码
var TelegramBot = require('node-telegram-bot-api');
var bot = new TelegramBot(token);
var requestSettings = {
url: 'http://httpbin.org/image',
encoding: null
};
request(requestSettings, function (error, response, buffer) {
if (!error && response.statusCode == 200) {
bot.sendPhoto(chatId, buffer)
}
});
以上是关于下载图像并使用multipart / form-data将其发送到API的主要内容,如果未能解决你的问题,请参考以下文章