1

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

1 に答える 1

0

投稿したコードの最初のブロックは、バックグラウンドタスクの有効期限ハンドラーを登録します。このハンドラーは、リクエストが終了したかどうかに関係なく呼び出されます。

リクエストがまだ終了していない場合は、そのブロックをチェックインする必要があります。たとえば、後で再試行できます。

于 2013-03-04T03:37:41.227 に答える