Ios 使用“下载文件”;如果自修改以来";标题

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

我正在尝试下载一个标题为“Last Modified”的文件。 如果文件没有被修改,我会得到我想要的304,并保存重新下载文件。然而

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];
    }

所以你想流式传输到一个临时文件,然后在成功后移动该文件?我考虑过这样做,我想看看是否有更简单的方法。