layout: post title: “2019-11-14- ios网络请求.markdown” date: 2019-11-14 12:11:30 +0800

  1. IFLMainOrderP // 订单首页

  2. IFLOrderSlideTitleP // 订单首页头部 获取服务类型 获取数据后,数据放入IFLOrderSlideTitleP.datalist
  3. 获取数据成功后的回调
     DispatchQueue.main.async {
         gorderfstlSuccess()
     }
    
  4. 线程切换 一般会在请求的时候使用子线程,返回数据后使用 DispatchQueue.main.async { 。。。 }
  5. 如何设置请求参数 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  }
    
  6. 设置网络请求参数 IFLAppDelegateHelper 通过var tmpRParamDic: [String: [String: Any]]! 以cmd:“请求参数” 的方式暂时承载请求参数; 准备好参数以后,可以反复发送相同的请求。 // Moya 的设计模式必然要 把请求过程和设置请求参数分开。 // 因为Task是根据enum自动获取的。
  7. 返回结果 IFLProvider.request(ifl) { result in if case let .success(response) = result {

    }

  8. 返回封装(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