iOS開發之網路編程--1、AFNetwork 3.x 的所有開發中常用基礎介紹,iosafnetwork

來源:互聯網
上載者:User

iOS開發之網路編程--1、AFNetwork 3.x 的所有開發中常用基礎介紹,iosafnetwork

前言:第三方網路請求架構中AFNetwork 3.x收歡迎程度相當高的:

由於iOS 7 和 Mac OS X 10.9 Mavericks 中一個顯著的變化就是對 Foundation URL 載入系統的徹底重構。而且現在AFN 3.x版本 完全摒棄了NSURLConnection,而使用了NSURLSession。

關於NSURLConnection和NSURLSession的用法,讀者可以閱讀本人寫的很多前幾篇博文。

下載方式:1、直接到github官網上搜尋"AFN",看到這樣的受歡迎程度高的自然就是。2、使用cocoapods整合到你的項目中去,關於cocoapods的安裝和使用方法,請讀者閱讀本人的兩篇博文:《CocoaPods的安裝(圖文並茂)OS X 10.11 系統》和《CocoaPods的使用(圖文並茂)OS X 10.11 系統》

 內容大綱:

  • 1、AFN 3.X的基本使用
  • 2、AFN 3.X的檔案下載
  • 3、AFN 3.X的檔案上傳
  • 4、AFN 3.X的提示
  • 5、AFN 3.X 序列化相關
  • 6、AFN 3.X 網路監聽(不難)

本文:

1、AFN 3.X的基本使用

  1-1、步驟:

    1-1-1、建立會話管理者
          是AFHTTPSessionManager作為會話管理者,用manager建立
          不是AFURLSessionManager,而且AFURLSessionManager無manager方法
        1-1-2、開始請求,URL都不需要自己建立了。
          第一個參數:請求路徑(NSString
            以前: http://120.25.226.186:32812/video?type=JSON
                  http://120.25.226.186:32812/login?username=520it&pwd=520it&type=JSON
                  協議頭+主機地址+介面名稱+?+參數&參數
            現在:http://120.25.226.186:32812/video
                  http://120.25.226.186:32812/login
            協議頭+主機地址+介面名稱
          第二個參數:要傳遞的參數(字典)
          第三個參數: progress:進度 nil
          第四個參數:  success:成功,請求成功的回調
                          task:請求任務
                responseObject:響應體資訊,而且內部已經進行了序列化處理
          第五個參數:failure 請求失敗的回調
                      task:請求任務
                     error:如果失敗,那麼error有值

  1-2、源碼展示

    

2、AFN 3.X的檔案下載

  2-1、步驟:

         第一個參數:請求對象
         第二個參數:progress 進度資訊的回調
                downloadProgress
                completedUnitCount:已經下載的資料大小
                  totalUnitCount":資料的總大小
         第三個參數:destination 有傳回值
            傳遞一個目標路徑(NSURL),AFN內部會自動執行剪下處理
              targetPath:臨時路徑
              response: 回應標頭資訊
         第四個參數:completionHandler 下載完成之後調用

  2-2、源碼展示

      

3、AFN 3.X的檔案上傳

  

  

4、AFN 3.X的提示

      在實際開發中,是不會在控制器中直接調用架構的網路請求,比如:如果在網路請求的某個控制器中直接調用了這個AFN架構,會出現後期不好維護的情況,比如一般企業開發的app項目會有十來個二十來  個ViewController,大部分控制器都會需要活資料,也就是需要通過請求網路來擷取資料,那麼在多個控制器都匯入和使用了AFN架構,而實際開發需求可能會讓你換掉網路請求架構,要將這個AFN架構換成  ASI架構,這樣可想而知,作為碼農都要哭了。


  那麼可行性方案,也是企業開發中常常會用到的方法:
      在需要網路請求的控制器和網路請求架構之間建立一個工具類,這個工具類可以是類別,也可以是普通類,然後將網路請求的方法簡易封裝起來,最好能應對不同情況和不同的資料的請求,並且能實現,當  我將AFN架構替換成ASI架構的時候,控制器裡調用的這個工具類的方法完全不需要改變,要改變的只是工具類中將AFN替換成ASI架構。總之,建立一個網路請求工具類,能夠讓所有的控制器不依賴底層框   架,只依賴這個工具類。

  

5、AFN 3.X 序列化相關

  5-1、JSON解析,內部會自動對JSON資料進行還原序列化處理,通過回應標頭資訊返回字典對象(可以列印出其類型和字典元素值查看)

       不需要手動設定解析方式。

  

  5-2、XML解析需要<NSXMLParserDelegate>協議輔助解析XML,當然也可以使用我的封裝好的能實現XML直接轉模型字典的工具類"HYXMLParser"。

      需要告訴AFN以XML的方式解析資料。

      GET方法中要用有NSXMLParser參數的解析方法。

  

  5-3、直接返回伺服器的HTML資料格式,記得將返回的資料要設定Encoding為NSUTF8StringEncoding,然後直接輸出。

      需要手動設定告訴AFN解析方式為不解析,即AFHTTPResponseSerializer serializer。

  

  5-4、對於返回的是NSData格式的資料,比如網路上的返回的圖片、視頻等資源位元據。 

      需要手動設定告訴AFN解析方式為不解析,即AFHTTPResponseSerializer serializer。

  

 6、AFN 3.X 網路監聽(不難)

  

 

 

轉載註明出處:http://www.cnblogs.com/goodboy-heyang/p/5215991.html,尊重勞動成果。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.