AFNetworking请求超时但仍完成请求

时间:2013-03-03 22:36:50

标签: objective-c cocoa-touch file-upload afnetworking

我通过AFNetworking将许多文件上传到我的服务器,无论是许多小文件还是几个大文件,但总共不会一次上传超过250MB的文件。为了在我退出应用程序或关闭iPhone时继续上传,我说:

    [operation setShouldExecuteAsBackgroundTaskWithExpirationHandler:^{
        NSLog(@"Request time out");
    }];

我的问题是我的上传可能需要大约10-20分钟才能完成,即使我的所有文件都已上传,完成后我会收到“请求超时”消息。任何人都知道究竟发生了什么以及我应该做些什么来解决这个问题?

NSMutableURLRequest *apiRequest =
[self multipartFormRequestWithMethod:@"POST"
                                path:kAPIPath
                          parameters:params
           constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
               //attach file if needed
               if (uploadFile) {
                   [formData appendPartWithStreamingURL:uploadFile
                                               name:@"file"
                                           //fileName:[params objectForKey:@"title"] //Change to test.mp4 or .m4v I'm not sure
                                           mimeType:@"video/quicktime"]; //Change to video/quicktime
               }
           }];

1 个答案:

答案 0 :(得分:0)

您发布的第一个代码块注册了一个后台任务到期处理程序,无论您的请求是否已完成,都将调用该处理程序。

如果请求尚未完成,您应该检查该块,以便稍后重试,例如。