使用 request 获取 Node.js 中的二进制内容

我试图使用 requestGET进行二进制数据处理,结果得到了这样的结果:

var requestSettings = {
method: 'GET',
url: url,
};
request(requestSettings, function(error, response, body) {
// Use body as a binary Buffer
}

但是 body总是与预期值有几个字节的差异。经过进一步调查,我发现 request假定 body是字符串,并替换了所有非 unicode 字节。

我想加上

encoding: 'binary'

但是没有用。

我怎样才能得到二进制数据?

45786 次浏览

好吧,经过大量的挖掘,我发现 requestSettings应该有:

encoding: null

然后 body将是 Buffer类型,而不是默认的字符串类型。

接受的答案并没有解决我的问题。我不知怎么地认为 gzip: true起作用了。