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有关吗?
答案 0 :(得分:0)
Content-Length
完全可能有所不同,尽管它不应该。例如,我看到一些Web服务器(好吧,缓存服务器)设置Content-Length: -1
(已经不合法)以响应HEAD请求,但为GET请求设置了正确的Content-Length
。