来自 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。
我正在通过在共享 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。