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的更多相关文章

  1. Swift网络封装库Moya中文手册之Authentication

    Authentication 安全验证可能有点复杂,一些网络请求需要认证,这里我们讨论两种常见的. Basic HTTP Auth HTTP auth是HTTP协议自带的用户名/密码验证.如果你使用的 ...

  2. Swift网络封装库Moya中文手册之Endpoints

    Endpoints Endpoint是一种半私有的数据结构,Moya用来解释网络请求的根本构成.一个endpoint储存了以下数据: The URL. The HTTP method (GET,POS ...

  3. Swift网络封装库Moya中文手册之Providers

    Providers 使用Moya,你可以通过一个 MoyaProvider 的实例发送所有网络请求,通过枚举来指定你要访问的具体API.在配置你的 Endpoint 之后,你差不多就做好了基础配置: ...

  4. Swift网络封装库Moya中文手册之RxSwift

    RxSwift Maya提供了一个可选的MoyaProvider 子类 - RxMoyaProvider.在网络请求完成时,我们不再使用 request() 函数的回调闭包,而是使用 Observab ...

  5. Swift网络封装库Moya中文手册之Targets

    Targets 使用Moya,我们首先需要定义一个target - 这通常是继承 TargetType 协议的 枚举 变量.接下来,你的app只需要处理这些targets,也就是一些你希望调用API完 ...

  6. EasyX库简单中文手册

    EasyX库简单中文手册 作者: 时间: 2021/2/2 第一个例程 #include <graphics.h> // 图像相关库 #include <conio.h> // ...

  7. Swift:网络库Alamofire

    一,Alamofire的说明与配置 1,什么是Alamofire (1)Alamofire 的前身是 AFNetworking.AFNetworking 是 iOS 和 OS X 上很受欢迎的第三方H ...

  8. swift中第三方网络请求库Alamofire的安装与使用

    swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面 ...

  9. Swift中文手册 -- The Basics

    原文:Swift中文手册 -- The Basics 基础部分 Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 S ...

随机推荐

  1. Linux deepin 中Jetbrain Idea等软件中文显示异常

    解决方案:安装常用的中文字体 # 文鼎宋体[推荐] sudo apt install fonts-arphic-uming # 文鼎楷体[推荐] sudo apt install fonts-arph ...

  2. Luogu P1314 聪明的质监员 二分答案

    题目链接 Solution 这个范围不是二分就是结论题就是数学题... 然后再看一会差不多就可以看出来有单调性所以就可以确定二分的解法了 二分那个$W$,用前缀和$O(n+m)$的时间来求出对答案的贡 ...

  3. Linux 安装 mysql 转 http://www.cnblogs.com/fnlingnzb-learner/p/5830622.html

    到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (g ...

  4. HDU 6178 Monkeys(树上的二分匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=6178 题意:现在有一n个顶点的树形图,还有k只猴子,每个顶点只能容纳一只猴子,而且每只猴子至少和另外一只猴子通过 ...

  5. POJ 3295 Tautology(构造法)

    http://poj.org/problem?id=3295 题意: 判断表达式是否为永真式. 思路: 把每种情况都枚举一下. #include<iostream> #include< ...

  6. ubuntu16.04, git 的配置

    1.下载git:sudo apt-get install git 2.生成公钥:ssh-keygen -t rsa -C  '你的邮箱'     ,不停回车即可 3. mkdir test cd te ...

  7. android开发:Android 中自定义属性(attr.xml,TypedArray)的使用

    今天我们的教程是根据前面一节扩展进行的,如果你没有看,请点击 Android高手进阶教程(三)查看第三课,这样跟容易方便你的理解! 在xml 文件里定义控件的属性,我们已经习惯了android:att ...

  8. Vue.js Client-Side Storage;( Web Storage/localStorage)

    原文:https://cn.vuejs.org/v2/cookbook/client-side-storage.html LocalStorage (api) my code pen :https:/ ...

  9. PHP函数总结 (七)

    <?php /** * 匿名函数(闭包函数): * php>=5.3 * 允许临时创建一个没有指定名称的函数,常作为回调函数参数的值 * * 闭包的另一个概念: * 在内部函数中可以使用外 ...

  10. UVA-10318 Security Panel (DFS+剪枝)

    题目大意:求将一个r*c的按钮矩阵由全部为关变成全部为开的最少按扭次数,每按一次开关能作用到的范围不定. 题目分析:开关问题.打眼一看就是BFS+位压缩,但是写出来之后TLE.用DFS不断更新最优解. ...