2017年8月23日 星期三

swift3 串接 JSON API 範例

除了以內建的函式呼叫API之外,還可以使用套件,例如AFNetworking等
本文章是用內建的函式呼叫。


因照做之後無法順利執行,且他的範例中包含下載圖片。
因此練習做了一個功能比較單純的範例。

1.取得 API 網址

2.撰寫送出request的設定

3.task是送出request。

  • 解析收到的data,轉換編碼utf8,就是string那個,是JSON的格式
  • 將string分解成想要的物件,例如NSArray等

4.task.resume() 執行task送出request



NSURLRequest解釋
URL:API網址
cachePolicy:一個具有暫存的特定策略
timeoutInterval:連線最大秒數


cachePolicy策略選擇



  • useProtocolCachePolicy
    • default
    • 用於特定的URL加載請求
  • reloadIgnoringLocalCacheData
    • 舊稱為NSURLRequestReloadIgnoringCacheData
    • 忽略local cache data,直接從網址撈
  • reloadIgnoringLocalAndRemoteCacheData
    • 忽略local cache data
    • 只要protocol同意,指示該代理和其他中間設備忽略local cache data
    • Unimplemented
  • reloadIgnoringCacheData
    • reloadIgnoringLocalCacheData的舊稱
  • returnCacheDataElseLoad
    • 優先使用現有的cache data,就算是很久以前或是已經過期的資料依然使用
    • 如果要的資料不存在於現有的cache,才從URL讀取
  • returnCacheDataDontLoad
    • 使用local cache data
    • 沒有local cache data,也不透過URL讀取
    • 常用於『離線』模式
  • reloadRevalidatingCacheData
    • 如local cache data是有效的,則使用local cache data
    • 如與來源確認資料非有效,則從URL讀取
    • Unimplemented


dataTask

數據任務便利方法。 這些方法創建了繞過正常委託,並提供了一個簡單的可取消異步接口來接收數據。
data:接收的資料
response:回應的內容。如:status code及headers{Cache-ControlContent-Type、Date、Expires、Server、Set-Cookie、Transfer-Encoding}
error:錯誤內容



0 意見:

張貼留言