目录
3、LYHArrayRequest:一个数组协议,为了解析数组方便,不用管他
4、LYHNetworkError: 网络错误统一处理的地方,可以自定义错误类型
5、LYHRequestManager:请求自定义事件处理的地方,例如:成功失败的处理,弹框的处理,开始请求的时机
几个月前自己想写个玩的新项目,就顺便写了一个网络二次封装,以后新项目就可以直接使用。最近更新到swift4.2
代码没注释,我也不想加~~~
demo下载地址:https://github.com/wokua/LYHNetwork.git,下面介绍下我写的这个封装的请求,喜欢的话,麻烦打个星支持下
一、使用方法
import Foundation
import ObjectMapper
class JokeModel : Mappable{
var content : String = "";
required convenience init?(map: Map) {
self.init()
}
func mapping(map: Map) {
content <- map["content"]
}
}
class JokerApi : LYHRequest<[JokeModel]>{//(返回数组写数组、单个写单个,空写(),字符串写String)
override func method() -> LYHHTTPMethod { return .get }
override func api() -> String { return "joke/content/list.php" }
override func addParameters(_ parameters: inout [String : Any]) {
parameters["sort"] = "asc"
parameters["page"] = 1
parameters["pagesize"] = 10
parameters["time"] = "1418816972"
}
}//
vc 里面调用,注意必须存储API实例对象
api.manager.showHUD().on( success: { [weak self](arr) in
self?.dataArr = arr
self?.tableView.reloadData()
}).request()
二、内容介绍
1、LYHConfig:网络基本配置类
详情:
baseUrl : 公司IP地址,每个请求前公有的部分,在此项目里面,少数不共有的由http开头即可
timeOut:超时时间
generalParament:请求的默认参数
generalHeader:默认请求头
generalResponse:默认解析方式,本代码例子中:[“result”,”data"],代表要解析的数据类型为这种:
{
“result” :{
data : “内容”
}
}
2、LYHRequest:请求基类,生成api基类
Agent:和almfire联系发布请求的类
success、failure请求成功或者失败的处理
param:参数传递设置
baseUrl:请求URL拼接的前半部分,不设置默认config中的
api:请求拼接的后半部分
method:请求方式
timeOut:当前请求时间,不设置默认config里面的
addParameters:当前接口参数
addFiles:设置文件信息,上传时使用
3、LYHArrayRequest:一个数组协议,为了解析数组方便,不用管他
4、LYHNetworkError: 网络错误统一处理的地方,可以自定义错误类型
5、LYHRequestManager:请求自定义事件处理的地方,例如:成功失败的处理,弹框的处理,开始请求的时机
showHUD():调用即展示请求加在框,不调用不弹框
on:参数意思:start请求开始时调用的方法,success:请求返回成功时调用的方法,failure:请求失败时调用的方法,completed:请求完成(成功、失败)时调用的方法
request():开始请求,分四种类型,由api范型确定
upload():开始上传,分四种类型,由api范型确定
LYHAgent:和alamfire交互,请求的类
buildRequest:建立网络请求,处理头、参数等,请求数据
buildUpload:建立网络请求,处理头、参数等,上传数据
LYHResponse:解析返回数据的类
分四种解析方式,有api范型协议确定:(Mappable协议对象,元素为MAppable协议的数组,字符串,空)
vaildResponse:从返回数据中获取data的地方,在这里可以自行洗定义错误处理