【问题标题】:AFNetworking not resuming downloadAFNetworking 未恢复下载
【发布时间】:2012-09-15 20:05:48
【问题描述】:

我正在使用 AFNetworking 将大文件下载到我的 iPad 应用程序中。

AFHTTPRequestOperation 的一个实例用于下载此文件。以下是供参考的代码-

//request 是下载文件的 NSRequest 对象 AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request 成功:^(AFHTTPRequestOperation *操作,id responseObject){ } 失败:^(AFHTTPRequestOperation *操作,NSError *错误){ }]; //这里的路径变量是下载文件的位置 operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path 附加:是]; //因为这个类是AFHTTPClient的子类所以操作被添加到请求队列中 [自入队HTTPRequestOperation:操作];

现在的问题是,当我尝试使用以下函数暂停和恢复此下载时,pauseDownload 功能可以正常工作,但是恢复下载无法正常工作,并且下载似乎从头开始我期待它会从它离开的地方恢复。这可能是什么问题?

-(无效)暂停下载{ [操作暂停]; } -(void)resumeDownload{ [操作简历​​]; }

【问题讨论】:

    标签: objective-c ios afnetworking


    【解决方案1】:

    花了一些时间后,我想出了如何暂停和恢复下载。

    AFNetworking 有extensions 其中之一是AFDownloadRequestOperation,它主要用于处理大文件的暂停和恢复。所以这里不使用 AFHTTPRequestOperation ,而是使用 AFDownloadRequestOperation 。下面是示例代码

    //request 是下载文件的 NSRequest 对象,targetPath 是文件下载后的最终位置。不要忘记将 shouldResume 设置为 YES AFDownloadRequestOperation *operation = [[AFDownloadRequestOperation alloc] initWithRequest:request 目标路径:目标路径 应该恢复:是]; [操作 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { //处理完成 }失败:^(AFHTTPRequestOperation *操作,NSError *错误){ //处理失败 }]; [操作 setProgressiveDownloadProgressBlock:^(NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) { //处理进度 }]; //因为这个类是AFHTTPClient的子类所以操作被添加到请求队列中 [自入队HTTPRequestOperation:操作]; //用于暂停下载 -(无效)暂停下载{ [操作暂停]; } //用于恢复下载 -(void)resumeDownload{ [操作简历​​]; }

    【讨论】:

    • 你能帮我解决这个问题吗[self enqueueHTTPRequestOperation:operation];
    • 我们如何在 AFNetworking 3.0 中做到这一点?我正在使用 NSURLSessionDownloadTask 但如果网络丢失/重新连接,它会从头开始下载并且不会恢复
    • 我也在这里使用 NSURLSessionDownloadTask 和关于恢复功能的解决方案。如果可能,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多