使用 Alamofire 來簡化與網路溝通的功能

法蘭克的 iOS 世界
5 min readMar 11, 2017

--

該套件的創作者與 Objective-C 的 AFNetworking 是同一位,相信有使用過 Objective-C 的人都不陌生。在 APP 的世界裡,不管大大小小的專案很常需要至 Server 端取得資料,所謂 Server 端指的就是在另一台伺服器上面的資料,通常該伺服器會提供一個服務讓你來取得它的資料,也就是現在很常聽到的名詞 Web Service,然而 Alamofire 就是用來呼叫該 Web Service 套件。當然 Swift 本身底層也有類似的套件可使用(URLSesssion),但相對使用起來沒那麼方便。今天就來介紹如何使用 Alamofire 來取得臺北市政資料開放平台的資料,在開始之前有些前置作業須完成。

前置作業:

  1. 清楚如何使用 CocoaPods 來載入第三方的套件,若不清楚的人,法蘭克在先前有分享過教學文章
  2. 安裝 Postman 或是 Plug in Safari 的 JSON Formatter 的工具,方便用來查看 Server 端的 JSON 格式的資料,法蘭克先前也有分享過 Postman 的使用方式
  3. GitHub 了解 Alamofire 的使用導覽,先了解使用 Get 的方式來發送請求即可。

內容大綱:

  1. 使用 CocoaPods 將 Alamofire 套件載入至 Xcode 專案下。
  2. 使用 Alamofire 取得臺北市政府資料開放平台提供的台灣省一週氣象資訊
  1. 使用 CocoaPods 將 Alamofire 套件載入至 Xcode 專案下

這邊法蘭克假設你/妳都已經安裝好 CocoaPods 且知道指令的意義為何。

▼建立Single View Application的專案,並命名為 AlamofireDemo

▼打開終端機並將目錄切至Alamofire專案下,再鍵入「pod init」來生成profile檔

▼使用文字編輯器打開profile並加入Alamofire的套件名稱

該名稱可參考 Alamofire 在 GitHub 上的說明

▼再次打開終端機將路徑切換至專案下的 AlamoFireDemo.xcodeproj 下,公將專案關閉後,再鍵入「pod update」來安裝 Alamofire(CocoaPods 版本必須要在1.1.0以上才可安裝 Alamofire)

▼再次打開專案來實作取得Server端的資料範例

2. 使用 Alamofire 取得臺北市政府資料開放平台提供的臺北市一週氣象資訊

在這之前先使用 Postman 或直接在瀏覽器上面輸入以下的 URL 來確認資料是否可正常呈現:

http://data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=e6831708-02b4-4ef8-98fa-4b4ce53459d9

▼打開專案並import Alamofire

▼在ViewDidLoad func下利用Alamofire發送Get的請求來取得資料

第 1 行 => 呼叫 request func 來發送一個請求並取得 JSON 格式的結果。request func 的第一個參數為 Server 的 URL,也就是剛剛貼到瀏覽器上的 URL,若沒指定 HTTP 的方法,預設是使用 GET 的方式來發送請求。responseJSON 可將回傳結果轉換成 JSON 的格式,該 func 回傳一個閉包並將結果集放在 response 物件裡。

第 2 ~ 16 行 => 第 2 行判斷是否成功,若成功則開始解析 JSON,若失敗則將錯誤打印至 console。第 4 行將結果轉換成 JSON Array,第 6 ~ 12 行取出要呈現的資訊(可依自己所要的欄位來定義,這邊法蘭克只呈現 4 個)。

結論:

APP 與網路世界已密不可分,所以花些時間來學習如何與網路溝通是必要的。下一篇要分享使用第三方套件SwiftyJSON來簡化取得的JSON格式資料。該篇文章若是使用上有任何的問題都可留言給法蘭克,該範例也上傳至 GitHub

--

--

No responses yet