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