我已经实现了NSURLConnection
将文件上传到服务器的方法,在设备升级到 iOS6 之前一切正常。现在,它在 3G 下工作正常,但是当通过 wifi 连接时,上传只是中途停止并挂在那里直到超时设置。
经过一番检查,使用wifi:
上传小文件时,
didSendBodyData
会多次调用delegate,这很好,但奇怪的是,totalBytesWritten
相当于之后totalBytesExpectedToWrite
,它会暂停一段时间,再次调用相同的delegate,现在,totalBytesExpectedToWrite
会变成2x原始文件大小。当上传较大的文件时,
didSendBodyData
delegate 将被多次调用,但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 连接有什么变化?任何意见,将不胜感激。