Swift网络封装库Moya中文手册之Plugins
Plugins
Moya plugins用于反映请求的发起或接收。Plugins定义为 PluginType
属性,可以在请求准备发起和接收到返回数据时回调。
Built in plugins
Moya有一些共通的默认plugins:安全认证(Authentication),网络请求进度管理(Network Activity Indicator),以及日志(Logging)。
Authentication
authentication plugin允许用户给每个请求指定可选的 NSURLCredential
。在请求接收到时没有活动。
这个plugin可以在 Source/Plugins/CredentialsPlugin.swift
找到。
Network Activity Indicator
iOS的网络活动通常都在请求时有一个进度指示器,请求结束时移除。这个plugin在请求开始和结束时添加回调,可以记录进程中的请求数量,相应的显示/隐藏network activity indicator。
这个plugin可以在 Source/Plugins/NetworkActivityPlugin.swift
找到。
Logging
开发过程在在控制台输出日志是很有用的。这可以是请求发送和接收时的任何东西,可以打印完整的headers,method,request body。
这个plugin是提供的plugins中最复杂的,可以根据需求进行配置来满足app的不同编译类型。在初始化这个plugin时, 你可以选择打印命令,并且为输出数据提供函数 (这在你使用自己的log库代替print
时很有用),以及在打印前格式化数据 (返回值默认使用 NSUTF8StringEncoding
转换成字符串,但如果你想转换成JSON,可以传一个格式化函数,参考 in Demo/Demo/GitHubAPI.swift
里现成的 JSONResponseDataFormatter
)
这个plugin可以在 Source/Plugins/NetworkLoggerPlugin.swift
找到。
Custom plugins
这里有新建一个plugin的示例:docs/Examples/CustomPlugin.md
转载请注明出处http://www.cnblogs.com/liuliuliu/p/5627891.html,并注明转载。
原文链接
翻译: bibibi_liuliu
联系方式: 395985239@qq.com
Swift网络封装库Moya中文手册之Plugins的更多相关文章
- Swift网络封装库Moya中文手册之Authentication
Authentication 安全验证可能有点复杂,一些网络请求需要认证,这里我们讨论两种常见的. Basic HTTP Auth HTTP auth是HTTP协议自带的用户名/密码验证.如果你使用的 ...
- Swift网络封装库Moya中文手册之Endpoints
Endpoints Endpoint是一种半私有的数据结构,Moya用来解释网络请求的根本构成.一个endpoint储存了以下数据: The URL. The HTTP method (GET,POS ...
- Swift网络封装库Moya中文手册之Providers
Providers 使用Moya,你可以通过一个 MoyaProvider 的实例发送所有网络请求,通过枚举来指定你要访问的具体API.在配置你的 Endpoint 之后,你差不多就做好了基础配置: ...
- Swift网络封装库Moya中文手册之RxSwift
RxSwift Maya提供了一个可选的MoyaProvider 子类 - RxMoyaProvider.在网络请求完成时,我们不再使用 request() 函数的回调闭包,而是使用 Observab ...
- Swift网络封装库Moya中文手册之Targets
Targets 使用Moya,我们首先需要定义一个target - 这通常是继承 TargetType 协议的 枚举 变量.接下来,你的app只需要处理这些targets,也就是一些你希望调用API完 ...
- EasyX库简单中文手册
EasyX库简单中文手册 作者: 时间: 2021/2/2 第一个例程 #include <graphics.h> // 图像相关库 #include <conio.h> // ...
- Swift:网络库Alamofire
一,Alamofire的说明与配置 1,什么是Alamofire (1)Alamofire 的前身是 AFNetworking.AFNetworking 是 iOS 和 OS X 上很受欢迎的第三方H ...
- swift中第三方网络请求库Alamofire的安装与使用
swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面 ...
- Swift中文手册 -- The Basics
原文:Swift中文手册 -- The Basics 基础部分 Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 S ...
随机推荐
- hdu4528 小明系列故事——捉迷藏(记录状态的BFS)题解
思路: 一道BFS题,和以前的BFS有点不同,这里的vis数组需要记录每次走时的状态,所以开了3维,只对该状态下的vis修改. 注意坑点:S的位置是可以走的 代码: #include<queue ...
- How can I list all foreign keys referencing a given table in SQL Server?
How can I list all foreign keys referencing a given table in SQL Server? how to check if columns in ...
- CSS3屏幕密集媒体查询
html { font-size: 50px; } body { font-size: 24px; } @media screen and (max-width: 359px) { html { fo ...
- Sass常用写法
Sass使用变量,变量以$开头 $bgcolor:#f40; background-color:$bgcolor; 如果变量需要嵌套在字符串当中,就需要写在#{}之中 $direction:left; ...
- Python Sip [RuntimeError: the sip module implements API v11.0 to v11.2 but the PyQt5.QtCore module requires API v11.3]
不知道原因,尝试卸载.编译安装均失败.只有这样曲线救国 import matplotlib matplotlib.use("WXAgg",warn=True) import mat ...
- shell 算术运算符
算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30. - 减法 `expr $a - $b` ...
- Python day18模块介绍2(使用BASE_DIR修改临时path,os模块)
1.BASE_DIR修改path(别人导入py项目时不会因为绝对路径无法解释) #sys修改环境变量 #使用BASE_DIR将绝对路径改为相对路径 import sys,os BASE_DIR=os. ...
- C语言专题-基本数据类和占位符
C语言中常用的几种基本数据类型有 基本数据类型的长度 unsigned unsigned unsigned unsigned float没有unsigned double没有unsigned 占位符的 ...
- PHP求并集,交集,差集
PHP求并集,交集,差集 一.总结 一句话总结:在php中如果我想要对两个数组进行如并集.交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersec ...
- CF938G Shortest Path Queries
首先只有询问的话就是个WC的题,线性基+生成树搞一搞就行. 进一步,考虑如果修改操作只有加边怎么做. 好像也没有什么变化,只不过需要在线地往线性基里插入东西而已. 删边呢? 注意到线性基这个玩意是不支 ...