2

我已经实现了NSURLConnection将文件上传到服务器的方法,在设备升级到 iOS6 之前一切正常。现在,它在 3G 下工作正常,但是当通过 wifi 连接时,上传只是中途停止并挂在那里直到超时设置。

经过一番检查,使用wifi:

  1. 上传小文件时,didSendBodyData会多次调用delegate,这很好,但奇怪的是,totalBytesWritten相当于之后totalBytesExpectedToWrite,它会暂停一段时间,再次调用相同的delegate,现在,totalBytesExpectedToWrite会变成2x原始文件大小。

  2. 当上传较大的文件时,didSendBodyDatadelegate 将被多次调用,但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 连接有什么变化?任何意见,将不胜感激。

4

0 回答 0