ios网络请求
layout: post title: “2019-11-14- ios网络请求.markdown” date: 2019-11-14 12:11:30 +0800
-
IFLMainOrderP // 订单首页
- IFLOrderSlideTitleP // 订单首页头部 获取服务类型 获取数据后,数据放入IFLOrderSlideTitleP.datalist
- 获取数据成功后的回调
DispatchQueue.main.async { gorderfstlSuccess() }
- 线程切换 一般会在请求的时候使用子线程,返回数据后使用 DispatchQueue.main.async { 。。。 }
-
如何设置请求参数 IFLOrderDetailP IFLAPIHelper.request(ifl: .getorderdesc, netUnReacheable: { } 请求参数在哪里? private func prepareGetorderdescParamData() -> IFLOrderDetailP {
var baseDic = [String: Any]() let cmd = "getorderdesc" baseDic["cmd"] = cmd baseDic["orderid"] = self.orderDetailPProtocol?.fetOrderId() ?? "" IFLAppDelegateHelper.shareInstance()?.fillCommParamData(key: cmd, value: baseDic) return self }
- 设置网络请求参数 IFLAppDelegateHelper 通过var tmpRParamDic: [String: [String: Any]]! 以cmd:“请求参数” 的方式暂时承载请求参数; 准备好参数以后,可以反复发送相同的请求。 // Moya 的设计模式必然要 把请求过程和设置请求参数分开。 // 因为Task是根据enum自动获取的。
-
返回结果 IFLProvider.request(ifl) { result in if case let .success(response) = result {
}
- 返回封装(Result库)
// Moya 对结果进行封装 let completionHandler: RequestableCompletion = { response, request, data, error in let result = convertResponseToResult(response, request: request, data: data, error: error)
// 对数据进行封装 MoyaProvider.convertResponseToResult
https://www.jianshu.com/p/219b197a230a