AFNetworking 3.x 簡單使用

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

內容大綱:

  • 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,尊重勞動成果。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章