網路 NSURLSession 的斷點續傳

2021-07-11 08:18:44 字數 2068 閱讀 7463

#import "viewcontroller.h"

#import "ssziparchive.h"

#import "nsstring+hash.h"

@inte***ce

viewcontroller ()

@property (weak, nonatomic) iboutlet uiprogressview *progressview;

@property (nonatomic, strong) nsurlsession *session; // 自定義會話

@property (nonatomic, strong) nsdata *resumedata; // 斷點續傳的資料

@property (nonatomic, strong) nsurl *url;

@end

@implementation

viewcontroller

- (void)viewdidload

// 在暫停或者繼續之前先判斷當前的任務狀態

- (ibaction)pause:(id)sender ];

}}- (ibaction)resume:(id)sender

if (self

.downloadtask

.state==nsurlsessiontaskstatecanceling||self

.downloadtask

.state == nsurlsessiontaskstatesuspended)

}//通過url得到resumedata的儲存路徑---用md5改變路徑,降低重複率

- (nsstring *)resumedatapathwithurl:(nsurl *)url

//把屬性中resumedata資料根據url儲存到指定路徑

- (void)loadresumedatawithurl:(nsurl *)url

// 但是在真機上不存在這個問題

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

- (void)loaddata else

[self

.downloadtask resume];

}#pragma mark - session 的**

- (void)urlsession:(nsurlsession *)session downloadtask:(nsurlsessiondownloadtask *)downloadtask didfinishdownloadingtourl:(nsurl *)location

// 此方法並沒什麼卵用

- (void)urlsession:(nsurlsession *)session downloadtask:(nsurlsessiondownloadtask *)downloadtask didresumeatoffset:(int64_t)fileoffset expectedtotalbytes:(int64_t)expectedtotalbytes

/** session 會話

downloadtask 任務的物件

byteswritten 本次寫入的資料長度

totalbyteswritten 總共接收了資料長度

totalbyte***pectedtowrite 總的資料長度

*/- (void)urlsession:(nsurlsession *)session downloadtask:(nsurlsessiondownloadtask *)downloadtask didwritedata:(int64_t)byteswritten totalbyteswritten:(int64_t)totalbyteswritten totalbyte***pectedtowrite:(int64_t)totalbyte***pectedtowrite ];

//dispatch_async(dispatch_get_main_queue(), ^);

}- (nsurlsession *)session

return _session;

}@end

iOS網路請求NSURLSession

nsurlsession是ios7中新的網路介面。nsurlsession提供的功能 將資料上傳到指定url 在後台完成上述功能 nsurlsession工作流程 1.建立乙個nsurlsessionconfiguration,用於第二步建立nssession時設定工作模式和網路配置。工作模式 1....

網路篇 NSURLSession介紹

nsurlsession 作用 和nsurlconnection一樣 1 負責傳送請求,建立客戶端和伺服器的連線傳送資料給伺服器 2 並收集來自伺服器的響應資料 步驟 1 建立nsurlsession物件 2 利用nsurlsession建立任務 task 3 執行任務 任務的型別 1 nsurls...

NSURLSession的初步理解

注意 當建立的session做為強引用時,需要自己手動釋放 void dealloc get請求的建立 方法一 1.建立nsurlsession nsurlsession session nsurlsession sharedsession 2.根據會話物件來建立task 第乙個引數 請求物件 第二...