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...