Meteor HTTP.get导致损坏的(?)内容

时间:2017-09-26 15:59:01

标签: http meteor server

在服务器上,我这样做:

var result = HTTP.get("https://spoticle001.s3-eu-west-1.amazonaws.com/2NtoSkvYZeeetrf3k-0_thumb");
console.log("content length:", result.content.length);

我看到11781.标题"内容长度"但是,字段表示12047,这确实是此URL处文件的实际大小。

在客户端上,相同的请求会产生另一个内容长度:11618。

这似乎是HTTP.get最简单的用例。为什么这么奇怪的结果?

1 个答案:

答案 0 :(得分:0)

那是因为HTTP正在使用npm的{​​{1}}模块发出请求,默认情况下,响应编码设置为request

  

utf8 - 用于encoding响应数据的编码。如果setEncoding,则null将作为body返回。其他任何内容(包括默认值Buffer )将作为编码参数传递给undefined(默认情况下这有效toString())。 (注意:如果您需要二进制数据,则应设置utf8。)

你可以这样做:

encoding: null

测试:

var result = HTTP.get("...", {
  npmRequestOptions: { encoding: null }
});

有用信息:request options