天天看點

iOS學習——iOS網絡通信http之NSURLConnection(八)

      移動網際網路時代,網絡通信已是手機終端必不可少的功能。我們的應用中也必不可少的使用了網絡通信,增強用戶端與伺服器互動。這一篇提供了使用NSURLConnection實作http通信的方式。

          NSURLConnection提供了異步請求、同步請求兩種通信方式。

       iOS5.0 SDK NSURLConnection類新增的sendAsynchronousRequest:queue:completionHandler:方法,進而使iOS5支援兩種異步請求方式。我們先從新增類開始。

iOS5.0開始支援sendAsynchronousReques方法,方法使用如下:

      sendAsynchronousReques可以很容易地使用NSURLRequest接收回調,完成http通信。

iOS2.0就開始支援connectionWithRequest方法,使用如下:

   connectionWithRequest需要delegate參數,通過一個delegate來做資料的下載下傳以及Request的接受以及連接配接狀态,此處delegate:self,是以需要本類實作一些方法,并且定義mData做資料的接受。

需要實作的方法:

1、擷取傳回狀态、標頭資訊。

2、連接配接失敗,包含失敗。

3、接收資料

4、資料接收完畢

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

同步請求資料方法如下:

同步請求資料會造成主線程阻塞,通常在請求大資料或網絡不暢時不建議使用。

        從上面的代碼可以看出,不管同步請求還是異步請求,建立通信的步驟基本是一樣的:

         1、建立NSURL

         2、建立Request對象

         3、建立NSURLConnection連接配接。

         NSURLConnection建立成功後,就建立了一個http連接配接。異步請求和同步請求的差別是:建立了異步請求,使用者可以做其他的操作,請求會在另一個線程執行,通信結果及過程會在回調函數中執行。同步請求則不同,需要請求結束使用者才能做其他的操作。

/**

* @author 張興業

*  iOS入門群:83702688

*  android開發進階群:241395671

*/

參考:

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid/20001836-BAJEAIEE

http://codewithchris.com/tutorial-how-to-use-ios-nsurlconnection-by-example/

http://kelp.phate.org/2011/06/ios-stringwithcontentsofurlnsurlconnect.html

     本文轉自xyz_lmn51CTO部落格,原文連結:http://blog.51cto.com/xyzlmn/1230731,如需轉載請自行聯系原作者

繼續閱讀