内容长度与写入大小不匹配

时间:2014-07-05 21:45:06

标签: javascript node.js http request

url = "http://api.soundcloud.com/tracks/<ID>/stream?client_id=YOUR_CLIENT_ID"
request.head(url, function(e, r, b) {
      var headcontentlength = r.headers["content-length"];
}

request(url, function(e, r, b) {
    var getcontentlength = r.headers["content-length"];
}).pipe(fs.createWriteStream(fileName));

fs.stat(fileName, function(e, s) {
    var statscontentlength = s.size
}

问题是headcontentlength !== getcontentlength !== statscontentlength。 这些都不匹配。

对于某些realson,fileStream关闭,并且与head请求的内容长度不匹配。那为什么会这样?头和获取请求会给出不同的内容长度吗?我怎么能过来这个?可能与soundcloud api有关吗?

1 个答案:

答案 0 :(得分:0)

Content-Length完全可能有所不同,尽管它不应该。例如,我看到一些Web服务器(好吧,缓存服务器)设置Content-Length: -1(已经不合法)以响应HEAD请求,但为GET请求设置了正确的Content-Length