2013-11-21 39 views
3

我正在處理一個需要上傳大文件到服務器的項目。我使用NSURLSession來設置後臺傳輸服務。一切似乎工作得很好,但我相信它繼續發送在32K的塊。我想知道是否有辦法增加塊大小?iOS:如何增加NSURLSession上傳任務的塊大小?

下面是建立一個上傳任務的示例代碼:

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。

回答

0

沒有使用NSURLSession API時要控制塊大小的方式。作爲一個方面說明,你可能不想。由於該設備可以完成從WiFi到蜂窩或交換信號塔等任務,因此您的帶寬將發生變化。我希望操作系統能夠不斷適應這些複雜的變化變量,通過限制你的應用程序帶寬作出反應。您實際上需要這樣做,因爲在crumby cell網絡上發出貪婪請求很可能會失敗。