iOS 使用Moya网络请求的实现方法

时间:2021-05-20

由于前段时间写了这篇文章,最新Moya已更新最新版本,故此也更新了下用法,本人已使用,故特意奉上最新的使用demo供参考。Moya11.0.2Demo

Moya简介

Moya是你的 app 中缺失的网络层。不用再去想在哪儿(或者如何)安放网络请求,Moya 替你管理。

Moya有几个比较好的特性:

  • 编译时检查正确的API端点访问.
  • 使你定义不同端点枚举值对应相应的用途更加明晰.
  • 提高测试地位从而使单元测试更加容易.

Swift我们用Alamofire 来做网络库.而 Moya 在Alamofire的基础上又封装了一层,如下流程图说明 Moya的简单工作流程图:

Moya的官方下载地址点我强大的Moya ,有具体的使用方法在demo里面有说明。

本文主要介绍一下Moya的用法

  • 设置请求头部信息 设
  • 置超时时间
  • 自定义插件
  • 自签名证书

注意:以下所出现的NetAPIManager 跟官网上demo的** GitHub**是一样类型的文件,都是这个enum实现一个协议TargetType,点进去可以看到TargetType定义了我们发送一个网络请求所需要的东西,什么baseURL,parameter,method等一些计算性属性,我们要做的就是去实现这些东西,当然有带默认值的我们可以不去实现,但是设置头部信息跟超时时间就要修改这些系统默认设置了。

为了看得更加清楚,贴上NetAPIManager文件的内容

//// NetAPIManager.swift// NN110//// Created by 陈亦海 on 2017/5/12.// Copyright © 2017年 陈亦海. All rights reserved.//import Foundationimport Moyaenum NetAPIManager { case Show case upload(bodyData: Data) case download case request(isTouch: Bool, body: Dictionary<String, Any>? ,isShow: Bool)}extension NetAPIManager: TargetType { var baseURL: URL {//服务器地址 switch self { case .request( _, _, _): return URL(string: "https://pletionHandler { dataTasks, uploadTasks, downloadTasks in // dataTasks.forEach { $0.cancel() } // uploadTasks.forEach { $0.cancel() } // downloadTasks.forEach { $0.cancel() } //}}

完毕,待续更高级的用法...

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章