先会用,然后再封装和拓展,之后再看源码,可能才算懂点。
Alamofire这个Swift网络框架还是挺好用的,拿来就可以直接使用。
下面是基于 Alamofire 4.8.1。
import Alamofire
import SwiftyJSON
var manager: Alamofire.SessionManager?
let sessionConfig = URLSessionConfiguration.default
sessionConfig.timeoutIntervalForRequest = 30
self.manager = Alamofire.SessionManager(configuration: sessionConfig)
manager?.request(loginURL!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers).validate().responseJSON { [weak self] response in
guard let strongSelf = self else {
return
}
switch response.result {
case .success(let value):
let json = JSON(value)
print(json)
break
case .failure(let error):
strongSelf.requestFailed(error as NSError)
break
}
}
配合SwiftyJSON来使用,如上发起一起get请求,如果还有其他参数,传一个parameters,框架里面会将需要拼的参数帮我们添加到url中。拿来直接就可以用还是挺方便的。
参考:
封装Alamofire: https://www.bilibili.com/read/cv7520682
HWNetworking : https://github.com/HouWan/HWNetworking
Alamofire已经封装的很好了,一般的拿来直接用。
如果后台一般需要验签啊什么的,拿来稍微封装一下就够用了。
感觉项目不是特别需求的话,不需要过度封装,简单的封装保留requestTask和request两个类抽象出来就能满足需求了。