LoginSignup
7
7

More than 5 years have passed since last update.

AFNetwokingで複数ファイルアップロードでハマった時の対処法

Posted at

問題

AFNetworkingを使用して、画像を8ファイルアップロードする処理を実行したところ、なぜか7ファイル目から下記のエラーが発生してアップロードに失敗する。

"リクエスト・ボディ・ストリームがなくなりました"

対処法

GitHubのIssueに対応方法がアップされていました。
https://github.com/AFNetworking/AFNetworking/issues/1713

どうやら、AFURLConnectionOperationのカテゴリを作成して、下記のメソッドを追加すればOK。

AFURLConnectionOperation+AFURLConnectionOperationFix
@interface AFURLConnectionOperation (AFURLConnectionOperationFix)
@end

@implementation AFURLConnectionOperation (AFURLConnectionOperationFix)

- (NSInputStream *)connection:(NSURLConnection __unused *)connection needNewBodyStream:(NSURLRequest *)request {
    if ([request.HTTPBodyStream conformsToProtocol:@protocol(NSCopying)]) {
        return [request.HTTPBodyStream copy];
    }
    return nil;
}

@end

見て分かる通り、HTTPBodyStreamをcopyしているのがわかります。
これで無事アップロードされることが確認できました。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7