由于前段时间写了这篇文章,最新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() } //}}完毕,待续更高级的用法...
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。