NSURLSession基本使用

2021-07-23 20:04:00 字數 1927 閱讀 6207

nsurlsession是ios7推出來的用於替代nsurlconnection的乙個網路框架,從ios9開始系統也已不在推薦使用nsurlconnection,轉而使用nsurlsession進行網路請求。

nsurlsession使用是之前的nsurlconnection相比較發生了一些。其使用的步驟可以簡單分為

1.建立session

2.建立task

3.啟動resume

task型別:

nsurlsession 總共有三種型別task

nsurlsessiondatatask

nsurlsessionuploadtask

nsurlsessiondownloadtask

-(void)get];

/**nsurlrequest *request = [nsurlrequest requestwithurl:[nsurl urlwithstring:urlstr]];

nsurlsessiondatatask *task2 = [session datataskwithrequest:request completionhandler:^(nsdata * _nullable data, nsurlresponse * _nullable response, nserror * _nullable error) ];**/

//啟動

[task resume];

//[task suspend];//暫停

//[task cancel];

}

-(void)post];

[task resume];

}

實現 nsurlsession的**nsurlsessiondatadelegate

//接收到伺服器響應的時候呼叫

-(void)urlsession:(nsurlsession *)session datatask:(nsurlsessiondatatask *)datatask didreceiveresponse:(nsurlresponse *)response completionhandler:(void (^)(nsurlsessionresponsedisposition))completionhandler

//接收伺服器返回資料 極有可能會被呼叫多次

-(void)urlsession:(nsurlsession *)session datatask:(nsurlsessiondatatask *)datatask didreceivedata:(nsdata *)data

//請求完成之後 如果錯誤error有值 否則nil

-(void)urlsession:(nsurlsession *)session task:(nsurlsessiontask *)task didcompletewitherror:(nserror *)error

-(void)get
如果在使用過程中大家的url是https的需要實現**的乙個方法,坐下處理

-(void)urlsession:(nsurlsession *)session didreceivechallenge:(nsurlauthenticationchallenge *)challenge completionhandler:(void (^)(nsurlsessionauthchallengedisposition, nsurlcredential * _nullable))completionhandler

}

可學習文章連線

NSURLSession的介紹與基本用法

對比 nsurlconnection中的存在很多問題,例如 nsurlconnection是ios2.0推出的古老而又經典的網路解決方案。複雜的網路請求需要使用 進行實現。方式預設在主線程工作。只提供了start cancel方法,不能暫停。在使用多執行緒時需要使用執行迴圈。nsurlsession...

Javascript cssText基本使用指北

一 csstext之起步 那些年,我們是這樣設定樣式的 style.width 233px style.position fixed style.left 233px 現如今,我們可以這樣搞 style.csstext width 233px height 233px position fixed ...

ios NSUserDefaults基本使用

nsuserdefaults適合儲存輕量級的本地資料儲存,比如儲存登陸介面的使用者名稱 密碼之類的資料,並使之本地持久化。nsuserdefaults支援的資料格式有 nsnumber integer float double nsstring,nsdate,nsarray,nsdictionary...