使用nodejs和请求模块

时间:2015-07-14 10:37:40

标签: node.js request tumblr npm-request

所以我想用npm请求模块将图像上传到Tumblr API。 熟悉facebook和twitter API,这些请求的工作原理如下:

对于Facebook:
- 创建一个读取流:var media = fs.createReadStrem(' imgpath');
- 发出带有访问数据和uri设置的帖子请求,并且:

options.formData = {
  source: media,
  caption: "test"
};

对于Twitter:
  - 创建读取流
  - 将图片上传到twitter:

options.formData = {
  media: media
};

这完美无瑕 但是现在使用Tumblr,我需要先将图像编码为"数组(URL编码的二进制内容)"

所以我的问题是。如何对其进行编码并将其以正确的格式提供给npm请求模块。为此,我首先需要使用 fs.readFileSync 加载图像,但是可以将图像作为readStream上传到Tumblr,就像我使用FB和Twitter一样吗?

这是我尝试过的一件事:

var img = fs.readFileSync('img');  
options.form = { 
  type: 'photo',
  data: [img.toString('binary')]
}  

这给了我400:上传照片时出错。

我也研究了tumblrwks,它有效,但我真的希望用request完成这项工作

谢谢! :)

1 个答案:

答案 0 :(得分:0)

如果您被限制使用请求,则可以使用以下代码将数据转换为十六进制

encodeToHex = require('./encode-image').encodeToHex;
var photo = fs.readFileSync('./test/img/P1010486.jpg');

options.form = { 
  type: 'photo',
  data: encodeToHex(photo),
}  

encode-image由tumblrwks iteself

使用