1
Alamofre是对URLSession的封装,所以我们先看下Apple原生 的URLSession网络请求是怎样的
1. swift 原生的网络请求
let session = URLSession(configuration: configuration, delegate: delegate, delegateQueue: delegateQueue)
let url = URL(string: "http://--")!;
let task = session.dataTask(with: url) { data, response, error in
print(data ,response,error)
}
task.resume()
2.1 Alamofire response Model 直接解析
特性1
Decodeable ResponsesAlamofire 可以在reponse里直接解析成Model 。
/// 定义个遵守Codable的模型
struct Item: Codable {
var topicOrder: Int?
var id: Int?
var topicDesc: String?
var topicTittle: String?
var upTime: String?
var topicImageUrl: String?
var topicStatus: Int?
}
AF.request(baseURL,
method: .post)
.responseDecodable { (response: AFDataResponse<Item>) in
switch response.result {
case .success(let model):
break
case .failure(let error):
break
}
}
2.2 Alamofire Model 参数请求
特性2
Encodable Parameters
例子
/// 定义一个传参模型
struct VinEntity: Codable {
var vin: String
}
/// 创建一个传参实例
let vin = VinEntity(vin: "season")
/// Alamofire中请求中传递这个实例即可
AF.request(baseURL,
method: .post,
parameters: vin, encoder: JSONParameterEncoder.default)
.responseDecodable { (response: AFDataResponse<Token>) in
switch response.result {
case .success(let model):
break
case .failure(let error):
break
}
}
部分类图