2017-09-26 90 views
1

在服務器上,我做的:流星HTTP.get導致腐敗的內容

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的最簡單的可能的使用情況。爲什麼這樣奇怪的結果

回答

0

那將是因爲HTTP是使用npmrequest模塊發出請求和它在默認情況下,響應編碼設置爲utf8

encoding - 編碼的響應數據的setEncoding使用。如果nullbody作爲Buffer返回。其他任何(,包括默認值undefined)將作爲編碼參數傳遞到toString()(這意味着默認實際上是utf8)。 (注:,如果你期望二進制數據,你應該設置encoding: null。)

可以是這樣做的:

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

測試:

result.content.length 
> 12047 

有用的信息:request options