iOS開發(fā)-NSURLSession文件上傳

一、NSURLSession實(shí)現(xiàn)文件上傳

(1)實(shí)現(xiàn)文件上傳的方法

      /*
     第一個(gè)參數(shù):請(qǐng)求對(duì)象
     第二個(gè)參數(shù):請(qǐng)求體(要上傳的文件數(shù)據(jù))
     block回調(diào):
     NSData:響應(yīng)體
     NSURLResponse:響應(yīng)頭
     NSError:請(qǐng)求的錯(cuò)誤信息
     */
    NSURLSessionUploadTask *uploadTask =  [session uploadTaskWithRequest:request 
                                           fromData:data completionHandler:^(NSData * __nullable data, 
                                                                             NSURLResponse * __nullable response, 
                                                                             NSError * __nullable error)

(2)設(shè)置代理,在代理方法中監(jiān)聽文件上傳進(jìn)度

/*
 調(diào)用該方法上傳文件數(shù)據(jù)
 如果文件數(shù)據(jù)很大,那么該方法會(huì)被調(diào)用多次
 參數(shù)說(shuō)明:
     totalBytesSent:已經(jīng)上傳的文件數(shù)據(jù)的大小
     totalBytesExpectedToSend:文件的總大小
 */
-(void)URLSession:(nonnull NSURLSession *)session 
       task:(nonnull NSURLSessionTask *)task 
       didSendBodyData:(int64_t)bytesSent 
       totalBytesSent:(int64_t)totalBytesSent 
       totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend
{
    NSLog(@"%.2f",1.0 * totalBytesSent/totalBytesExpectedToSend);
}

(3)關(guān)于NSURLSessionConfiguration相關(guān) (" 具體內(nèi)容請(qǐng)看 'AFNetworking框架基本使用' 相關(guān)介紹! ")

01 作用:可以統(tǒng)一配置NSURLSession,如請(qǐng)求超時(shí)等
02 創(chuàng)建的方式和使用
//創(chuàng)建配置的三種方式
+ (NSURLSessionConfiguration *)defaultSessionConfiguration;
+ (NSURLSessionConfiguration *)ephemeralSessionConfiguration;
+ (NSURLSessionConfiguration *)backgroundSessionConfigurationWithIdentifier:(NSString *)identifier NS_AVAILABLE(10_10, 8_0);

//統(tǒng)一配置NSURLSession
-(NSURLSession *)session
{
    if (_session == nil) {

        //創(chuàng)建NSURLSessionConfiguration
        NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

        //設(shè)置請(qǐng)求超時(shí)為10秒鐘
        config.timeoutIntervalForRequest = 10;

        //在蜂窩網(wǎng)絡(luò)情況下是否繼續(xù)請(qǐng)求(上傳或下載)
        config.allowsCellularAccess = NO;

        _session = [NSURLSession sessionWithConfiguration:config 
                                 delegate:self delegateQueue:[NSOperationQueue mainQueue]];
    }
    return _session;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NSUrlSession專題 1概述 【主要參考】NSURLSession http://blog.csdn.ne...
    Kevin_Junbaozi閱讀 4,323評(píng)論 1 15
  • 在蘋果徹底棄用NSURLConnection之后自己總結(jié)的一個(gè)網(wǎng)上的內(nèi)容,加上自己寫的小Demo,很多都是借鑒網(wǎng)絡(luò)...
    付寒宇閱讀 4,511評(píng)論 2 13
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開發(fā),例如說(shuō)新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 4,022評(píng)論 2 7
  • 目錄 網(wǎng)絡(luò)基本概念 TCP/IP協(xié)議簇基本概念 HTTP 網(wǎng)絡(luò)開發(fā)技術(shù)解決方案 數(shù)據(jù)解析 網(wǎng)絡(luò)優(yōu)化 1. 網(wǎng)絡(luò)基本...
    Ryan___閱讀 1,463評(píng)論 1 0
  • 2017年9月8日,是帥帥瑞思dprek-23畢業(yè)的日子,放學(xué)回家路上,他用了好幾個(gè)詞語(yǔ)"溫暖,感動(dòng)", 前陣子還...
    嗨你個(gè)糖貓閱讀 253評(píng)論 0 0

友情鏈接更多精彩內(nèi)容