參考博客:Alamofire Tutorial: Getting Started
Alamofire是Swift的HTTP網(wǎng)絡工具包,相當于Swift實現(xiàn)AFNetworking版本长赞。通過一個名叫PhotoTagger的Demo晦攒,你將學會如何使用Alamofire進行基本網(wǎng)絡操作。Demo中得哆,你將上傳圖片到第三方服務Imagga API脯颜,并讓Imagga API為你的圖片加上標簽和配色。
用Cocoapods導入Alamofire的時候贩据,Terminal顯示成功栋操,但是當我import Alamofire的時候,出現(xiàn)了Cannot load underlying module for 'Alamofire'的問題饱亮。一開始我以為是cocoapods版本問題矾芙,查看版本是對的;我又按照Cannot load underlying module for 'Alamofire' · Issue #441 · Alamofire/Alamofire · GitHub上說的近上,重新導入Alamofire剔宪,還是不對。最后壹无,發(fā)現(xiàn)是一個很簡單的錯誤葱绒。cmd+B就可以了import Alamofire了。
#1 安裝Alamofire
打開Podfile斗锭,將里面代碼替換成如下哈街。Alamofire后面可以不用跟版本號,pod自己會知道那是Alamofire的最新版本的拒迅。
在終端里:pod install
#2 Alamofire基本用法
1.發(fā)送基本請求
responseJSON是從服務端返回的JSON數(shù)據(jù),除此之外璧微,Alamofire還支持普通數(shù)據(jù)作箍,字符串和plist形式的返回。
2.上傳文件
3.下載文件
4.HTTP驗證
5.HTTP響應狀態(tài)信息識別
6.調試狀態(tài)
#3 REST, JSON,HTTP簡介
1.HTTP:是一種網(wǎng)絡傳輸協(xié)議胞得。它定義了這幾種請求方法:
--GET用于獲取數(shù)據(jù)
--HEAD類似GET,但只能獲取header屹电,不能獲取實際數(shù)據(jù)
--POST將數(shù)據(jù)發(fā)送到服務器
--PUT將數(shù)據(jù)發(fā)送到一個具體位置
--DELETE將數(shù)據(jù)從一個具體位置刪除
2.REST全稱是REpresentational State Transfer阶剑,指的是一組架構約束條件和原則。如果一個架構符合REST的約束條件和原則危号,我們稱它為RESTful架構牧愁。這些規(guī)則包括:不保持請求狀態(tài),緩存請求外莲,提供獨特的接口猪半。這使得app開發(fā)者集成API時不用跟蹤請求的數(shù)據(jù)狀態(tài)兔朦。
3.JSON全稱是Javascript Object Notation,是一種輕量級的數(shù)據(jù)交換語言磨确,以文字為基礎沽甥,易于閱讀。它的數(shù)據(jù)類型有限乏奥。Apple提供NSJSONSerialization類來將對象轉化為JSON等格式
#4 為什么要使用Alamofire
Alamofire是以NSURLSession為基礎的摆舟,但是相比NSURLSession,它更簡短邓了,邏輯更清晰恨诱。Alamofire有這幾個主要功能:上傳,下載驶悟,請求胡野。這些功能的作用域是module材失,而不是class和struct痕鳍。
#5 上傳文件
1.格式轉換。保證Imagga API得到正確的格式龙巨。
2.因為Alamofire是異步的笼呆,所以你的UI更新也要以異步的方式。
3.導入Alamofire旨别,并調用upload方法诗赌。
找到uploadImage方法,并添加以下代碼.思路是:
上傳成功--計算上傳進度--檢查response是否成功--檢查response的每一部分秸弛,確保類型正確--上傳完成铭若,清空數(shù)組
上傳失敗--輸出encodingError
#6 獲取數(shù)據(jù)
1.獲取tags
2.獲取colors
3.更新upload()的completion handler方法
完成!5堇馈叼屠!