基于AFNetwoking的對網(wǎng)絡請求的二次封裝

在我們開發(fā)App的時候,經(jīng)常要和網(wǎng)絡請求打交道。也許你不知道NSURLSession,或者你也不知道NSURLConnection,亦或者你不知道NSURLSessionManager,但是在開發(fā)中你一定聽過AFNetworking這個框架。是的,這個框架是幾個大牛對蘋果原生網(wǎng)絡請求的封裝,它里面的內(nèi)容我今天不在這里做講解,等哪天專門抽時間來好好的聊聊這個牛逼的AFN框架。今天來聊的是基于這個框架的對網(wǎng)絡請求的二次封裝。

有的人會問,這個框架本身不是已經(jīng)進行封裝了嗎,干嘛還要進行二次封裝,有這個閉眼嗎?我想說的是,有這個必要。因為我們每次在調(diào)用這個框架的時候需要去寫很多重復性的代碼,這樣有兩個弊端:第一就是,你的項目中垃圾代碼滿天飛,第二就是,你調(diào)用后臺接口的時候不能夠保持接口的統(tǒng)一性。我想,做過開發(fā)的人都知道封裝的好處,這里就不啰嗦了。

我今天處理的是基于這個AFN的二次封裝,實現(xiàn)了項目中最常見的post和get請求,以及上傳圖片到服務器的功能。

下面首先看下我的demo中的層級結構:

圖片發(fā)自簡書App

首先創(chuàng)建的是一個基于AFHTTSessionManager的SessiomManager的類,在這個類中,有服務器接受的請求的類型,服務器響應的時間戳,以及向服務器請求的類型。下面是代碼:

圖片發(fā)自簡書App

在我們進行網(wǎng)絡請求的的時候也需要時時刻刻監(jiān)聽網(wǎng)絡的狀態(tài),在這里我直接用了一個很好的Reachability類,這是蘋果已經(jīng)寫好的了監(jiān)聽網(wǎng)絡改變的功能強大的類,直接附上代碼:

圖片發(fā)自簡書App

在這里我用了一個bool值類型的值來判斷是否有網(wǎng)絡,具體的如果想判斷是哪一種網(wǎng)絡狀態(tài)的話也很簡單,里面有網(wǎng)絡的wifi狀態(tài),wlan狀態(tài)還有所謂的unknow的狀態(tài)。

接下來創(chuàng)建了一個繼承自NSObject的NetWorkCall的類,下面直接看這個類中的方法:

圖片發(fā)自簡書App

這三個類方法中有些參數(shù)的意思已經(jīng)標明了,在這里我用了SVProgressHUD這個第三方,參數(shù)show也是用來判斷要不要顯示加載的提示信息。當然,也可用MBProgressHUD。

下面是方法的實現(xiàn)的代碼:

圖片發(fā)自簡書App


圖片發(fā)自簡書App
圖片發(fā)自簡書App

圖片發(fā)自簡書App


圖片發(fā)自簡書App
圖片發(fā)自簡書App

在上傳圖片的實現(xiàn)中,為了也出現(xiàn)圖片名為空的情況,需要做一個處理為空的處理,上面我已經(jīng)處理過了。我這里支持多想圖片或者單張圖片上傳到服務器上面。

在這些方法中主要是用到了幾個block,這幾個block的運用就是起到向后臺發(fā)送請求后,在接受到服務器請求以后回調(diào)后臺返回過來的數(shù)據(jù)。

下面是我借用公司本地開發(fā)環(huán)境下的一個簡單的接口,來測試一下我的一個網(wǎng)絡請求。下面是一段代碼:

圖片發(fā)自簡書App

測試結果是好的,在這里,我就不顯示服務器返回過來的數(shù)據(jù)了。上面就是一個簡單的思路和代碼,如有不足之處,歡迎指正。

我一直相信,沒有demo的技術文章就是在耍流氓,下面附上demo地址:https://github.com/15221532825/iOSNetWorkManager

如果覺得有一點幫助,可以到這個鏈接地址查看詳細代碼。謝謝!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,940評論 25 709
  • AFHTTPRequestOperationManager 網(wǎng)絡傳輸協(xié)議UDP、TCP、Http、Socket、X...
    Carden閱讀 5,317評論 0 12
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,188評論 4 61
  • 渾渾噩噩的度過了數(shù)日,我正臥在榻上按壓著頭部眼睛卻目不轉(zhuǎn)睛的盯著書卷,想要努力的拼湊那些記憶。白言每每都不請自來,...
    未慈閱讀 215評論 0 2
  • 一、中秋節(jié) 丙子年八月十五日,是夜,月明,風從南 起,大興云霧,逐主東方。 這是丫頭離去后的第一個中秋節(jié),紅...
    涂黎山主閱讀 2,130評論 1 9

友情鏈接更多精彩內(nèi)容