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

时间:2016-05-18 23:33:16

标签: ios objective-c http-headers nsurlconnection dropbox-api

我通过在共享链接的末尾添加?dl = 1代码,从dropbox下载压缩文件夹。

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

我尝试使用

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

我已经尝试检查didReceiveResponse方法,如果expectedContentLength为-1并且使用绝对zip文件链接(包含在response.URL中)使用

手动检查标题
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;

"长度"仍然是-1。

zip是由dropbox动态生成的,因此初始请求可能无法获取内容长度。但理论上,response.URL值应该是最终的压缩文件,请求它的头文件应该返回一个正确的contentLength字段,对吧?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

对于稍后来这里的人:

我从来没有找到一种方法来获得它,没有完全下载它(这有点打败了目的),所以那就是。 这是您无法访问的内容(写于16/06/16,请在阅读时再次检查)。下载压缩文件夹时,Dropbox不会设置该特定标题。