最近在用swift寫項目時,確實遇到很多的問題有滑,但是經(jīng)過努力還是解決跃闹,我經(jīng)常數(shù)據(jù)請求回json是Unicode編碼的,同時我們需要對網(wǎng)絡(luò)請求進行一個封裝毛好,我的這份筆記探討一下封裝和unicode轉(zhuǎn)成UTF8望艺,直接上代碼
先定義一個網(wǎng)絡(luò)請求的工具類,在這里發(fā)送網(wǎng)絡(luò)請求
import UIKit
import Alamofire
enum MethodType{
case GET
case POST
}
class? NetworkTools: NSObject {
//封裝一個類方法肌访;
class func requetDate(_ type:MethodType,URLString:String,paramters:[String:AnyObject
]?=nil,finishCallBack:@escaping (_ result: AnyObject)->()){
//獲取類型:
let method1 = type == .GET ?HTTPMethod.get : HTTPMethod.post
Alamofire.request(URLString, method: method1, parameters:paramters).responseJSON { (response) in
//處理Unicode編碼找默。將unicode編碼的json轉(zhuǎn)成uft8編碼
guard? let data = response.data? else{
return
}
let utf8Text = String(data: data , encoding: .utf8)
//finishCallBack(result1 as AnyObject)
finishCallBack(utf8Text as AnyObject)
}
}
}
我們在另一個工具類中調(diào)用NetworkTools
import UIKit
class NetworkToolRequest: NSObject {
class? func getIdentifierCode(params:[String:AnyObject],_ finishCallBack: @escaping(_ result: AnyObject)->()){
NetworkTools.requetDate(.POST, URLString: "http://120.77.69.123:8080/ubEApi/eApi/sendSMSCaptcha.do") { (response) in
finishCallBack(response)
}
}
//注冊---接口3.2
class? func registUser(params:[String:AnyObject],_ finishCallBack: @escaping(_ result: AnyObject)->()){
NetworkTools.requetDate(.POST, URLString: "http://120.77.69.123:8080 /ubEApi/eApi/register.do", paramters: params) { (response) in
finishCallBack(response)
}
}
//登錄---接口3.3
class? func LoginAccount(params:[String:AnyObject],_ finishCallBack: @escaping(_ result: AnyObject)->()){
NetworkTools.requetDate(.POST, URLString: "http://120.77.69.123:8080/ubEApi/eApi/login.do", paramters: params) { (response) in
finishCallBack(response)
}
}
//獲取用戶的基本信息;
}