来自 Dropbox zip 下载请求的 HTTP 响应 (?dl=1)

HTTP response from dropbox zip download request (?dl=1)

我正在通过在共享 link.

末尾添加 ?dl=1 代码从保管箱下载一个压缩文件夹

除连接响应内容长度字段外,一切正常。当我检查 response.expectedContentLength 值时,它总是显示为 -1

我试过使用

避免响应 gzip 压缩
[httpRequest setValue:@"" forHTTPHeaderField:@"Accept-Encoding"];

如果 expectedContentLength 为 -1,我尝试检查 didReceiveResponse 方法,并使用绝对 zip 文件 link(包含在 response.URL 中)仅针对 headers 进行手动检查与

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:response.URL
                                                                      cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
                                                                  timeoutInterval:10];
    theRequest.timeoutInterval = 5.0;
    theRequest.HTTPMethod = @"HEAD";

    NSHTTPURLResponse *res;
    NSData * resData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&res error:nil];
    long length = res.expectedContentLength;

"length" 仍然显示为 -1。

zip 是由 dropbox 即时生成的,因此初始请求可能无法获取内容长度。但理论上 response.URL 值应该是最终的压缩文件,请求它的 headers 应该 return 一个合适的 contentLength 字段,对吧?

有什么想法吗?

对于以后来这里的人:

我从来没有找到获取它的方法,除非完全下载它(这有点违背了目的),就是这样。 这是您无法访问的内容(写于 16/06/16,阅读时请再次检查)。下载压缩文件夹时,Dropbox 不会设置特定的 header。