サーバーにファイルをアップロードする方法を実装NSURLConnection
しました。デバイスが iOS6 にアップグレードされるまで、すべてが正常に機能します。現在、3G では正常に動作しますが、wifi 経由で接続すると、アップロードが途中で停止し、タイムアウトが設定されるまでハングします。
いくつかの調査の後、wifiを使用して:
小さいファイルをアップロードする場合、
didSendBodyData
デリゲートは複数回呼び出されますが、これは問題ありませんが、奇妙なことに、 aftertotalBytesWritten
は と同等totalBytesExpectedToWrite
であり、しばらく一時停止し、同じデリゲートが再度呼び出され、現在はtotalBytesExpectedToWrite
の 2 倍になります。元のファイル サイズ。大きなファイルをアップロードするとき、
didSendBodyData
デリゲートは複数回呼び出されますが、totalBytesWritten
到達することはありませんtotalBytesExpectedToWrite
。途中で停止し、タイムアウトになるまでデリゲートは再度呼び出されません。
以下は、ファイルの送信を開始する方法の簡単な説明です。
NSURL *url = [[NSURL alloc] initWithString:MyURI];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];
[req setHTTPMethod:@"POST"];
[req setTimeoutInterval:600];
[req setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
[req setValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"];
[req setValue:userName forHTTPHeaderField:@"AuthField1"];
[req setValue:authorizationToken forHTTPHeaderField:@"AuthField2"];
[req setHTTPBody:data];
NSURLConnection *reqConnection = [[NSURLConnection alloc] initWithRequest:req delegate:self];
iOS6でwifi経由で接続するための変更は何ですか? アドバイスをいただければ幸いです。