Ios 使用“下载文件”;如果自修改以来";标题
我正在尝试下载一个标题为“Last Modified”的文件。 如果文件没有被修改,我会得到我想要的304,并保存重新下载文件。然而Ios 使用“下载文件”;如果自修改以来";标题,ios,download,afnetworking,Ios,Download,Afnetworking,我正在尝试下载一个标题为“Last Modified”的文件。 如果文件没有被修改,我会得到我想要的304,并保存重新下载文件。然而 operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO]; 如果我得到一个304,它会用一个空文档覆盖文件 以下是我的其余代码: - (void) addPDFToDownloadQueue:(NSString *)pdf{ if (![pdf is
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
如果我得到一个304,它会用一个空文档覆盖文件
以下是我的其余代码:
- (void) addPDFToDownloadQueue:(NSString *)pdf{
if (![pdf isEqualToString:@""]) {
NSString *urlString = [API_BASE_URL_PDF stringByAppendingPathComponent:pdf];
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:60];
if ([UserDefaultManager getEtagForKey:pdf]) {
NSString *etag = [UserDefaultManager getEtagForKey:pdf];
[request setValue:etag forHTTPHeaderField:IF_MODIFIED_SINCE];
}
[request setHTTPMethod: API_METHOD_GET];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
NSString *path = [FileUtils getPathInDocumentsWithFileName:pdf] ;
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
if ([operation.response respondsToSelector:@selector(allHeaderFields)]) {
[UserDefaultManager setEtag:[operation.response.allHeaderFields objectForKey:LAST_MODIFIED] forKey:pdf];
}
if ([self checkIfQueueHasFinished]) {
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_DOWNLOAD_ALL_PDF_FINISHED object:nil];
};
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (operation.response.statusCode != RESPONSE_CODE_UP_TO_DATE) {
LogDebug(@"%@", [error localizedDescription]);
}
if ([self checkIfQueueHasFinished]) {
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_DOWNLOAD_ALL_PDF_FINISHED object:nil];
};
}];
[self.downloadQueue addOperation:operation];
}
所以你想流式传输到一个临时文件,然后在成功后移动该文件?我考虑过这样做,我想看看是否有更简单的方法。