iOS:如何增加NSURLSession上传任务的块大小?

3
我正在处理一个需要上传大文件到服务器的项目。我使用NSURLSession来设置后台传输服务。一切似乎都很正常,但我认为它会不断以32K的块大小发送数据。我想知道是否有办法增加块大小?
以下是设置上传任务的示例代码:
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier];
sessionConfig.HTTPMaximumConnectionsPerHost = 1;
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
NSMutableURLRequest *request = [self configureURLRequest];
NSURLSessionUploadTask *uploadTask = [upLoadSession uploadTaskWithRequest:request fromFile:[NSURL fileURLWithPath:filePath]];

[uploadTask resume];

这是委托示例代码:

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend {

DLog(@"didSendBodyData: %lld, totalBytesSent: %lld, totalBytesExpectedToSend: %lld", bytesSent, totalBytesSent, totalBytesExpectedToSend);    

}

再次询问,是否有一种方法可以增加使用NSURLSession上传的块大小?默认情况下是32K。

1个回答

0

使用NSURLSession API时,没有一种方法可以控制块大小。顺便说一句,你可能不想这样做。因为设备会执行诸如从WiFi切换到蜂窝网络或交换基站等操作,你的带宽也会发生变化。我预计操作系统会不断适应这些复杂的变量变化,并通过限制应用程序的带宽来进行反应。实际上,你需要这样做,因为在糟糕的蜂窝网络上进行贪婪请求很可能会失败。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接