我收到错误报告,我的iOS应用程序无法在慢速连接上传图像.虽然我的超时可能不够高,但还有另一个问题.
我发现上传进度很快就达到了100%,尽管我在查尔斯看到字节仍在传输中.我使用NSURLSession的以下方法:
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request
fromData:(NSData *)bodyData
completionHandler:(void (^)(NSData *data,
NSURLResponse *response,
NSError *error))completionHandler
Run Code Online (Sandbox Code Playgroud)
并实现以下委托方法来接收进度事件:
- (void)URLSession:(NSURLSession *)session
task:(NSURLSessionTask *)task
didSendBodyData:(int64_t)bytesSent
totalBytesSent:(int64_t)totalBytesSent
totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend
Run Code Online (Sandbox Code Playgroud)
实际上我正在使用AFNetworking 2.5.2,它使用这种方法.我的理论是这个委托方法报告从电话发送的字节而不是实际传输的字节.
在非常低的连接下发送300kb将立即发送5-6个包并在等待它们被接收时报告100%的进度.
是否可以获得已确认已传输的实际字节数的进度事件?