前言:
無論是Android還是ios都離不開與服務(wù)器交互,這就必須用到網(wǎng)絡(luò)請求,記得在2013年做iOS的時(shí)候那時(shí)候用的ASIHTTPRequest框架,現(xiàn)在重新?lián)炱餴OS的時(shí)候ASIHTTPRequest已經(jīng)停止維護(hù),大家都在用AFNetWorking作為首選網(wǎng)絡(luò)請求框架,之前的ASIHTTPRequest是基于NSURLConnection類實(shí)現(xiàn)的,早期的AFNetWorking也是基于NSURLConnection實(shí)現(xiàn),后來iOS9 之后已經(jīng)放棄了NSURLConnection,開始使用iOS 7之后推出的NSURLSession,本著追根溯源的原則,首先學(xué)習(xí)一下NSURLSession的實(shí)現(xiàn)網(wǎng)絡(luò)請求,然后再去學(xué)習(xí)AFNetWorking。
了解NSURLSession
NSURLSession是2013年iOS 7發(fā)布的用于替代NSURLConnection的,iOS 9之后NSURLConnection徹底推出歷史舞臺(tái)。其使用起來非常方便,今天使用NSURLConnection分別實(shí)現(xiàn)了get、post、表單提交、文件上傳、文件下載,讓我這個(gè)以Android開發(fā)為主的屌絲程序員贊嘆不已,根據(jù)NSURLSession會(huì)話對象創(chuàng)建一個(gè)請求Task,然后執(zhí)行該Task即可,包括緩存、會(huì)話周期,多線程任務(wù)iOS都已經(jīng)在sdk層面封裝完畢,不過比較遺憾的時(shí)NSURLSession只提供了異步請求方式而沒有提供同步請求方式。接下來我們來如何實(shí)現(xiàn)網(wǎng)絡(luò)請求。
NSURLSession使用
我們首先以一個(gè)簡單的get請求為例開始。
1.)首先構(gòu)造一個(gè)NSURL請求資源地址
// 構(gòu)造URL資源地址 NSURL *url = [NSURL URLWithString:@"http://api.nohttp.net/method?name=yanzhenjie&pwd=123"];
2.)創(chuàng)建一個(gè)NSRequest請求對象
// 創(chuàng)建Request請求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];