moya】的更多相关文章

Moya是一个高度抽象的网络库,他的理念是让你不用关心网络请求的底层的实现细节,只用定义你关心的业务.且Moya采用桥接和组合来进行封装(默认桥接了Alamofire),使得Moya非常好扩展,让你不用修改Moya源码就可以轻易定制.官方给出几个Moya主要优点: 编译时检查API endpoint权限 让你使用枚举定义各种不同Target, endpoints 把stubs当做一等公民对待,因此测试超级简单. Target 开始Moya之旅的第一步便是,建立一个Enum的Target,这个Ta…
https://www.jianshu.com/p/173915b943af use_frameworks! target 'RXDemo' do pod 'RxSwift' pod 'RxCocoa' pod 'Moya-ObjectMapper/RxSwift' pod 'Moya/RxSwift' end import Moya let DouBanProvider = MoyaProvider<DouBanAPI>() public enum DouBanAPI { case chan…
准备 iOS做https适配时对服务器是有一定要求的,服务端必须要是一个符合ATS(App Transport Security)要求的HTTPS.简单说要满足以下几个要求:   1.Transport Layer Security协议版本要求TLS1.2以上 2.服务的Ciphers配置要求支持Forward Secrecy等 3.证书签名算法符合ATS要求等   Moya对应版本 Moya版本号(10.0.x):Alamofire版本号:4.7.x   实现方法 1.默认非HTTPS实现方法…
Authentication 安全验证可能有点复杂,一些网络请求需要认证,这里我们讨论两种常见的. Basic HTTP Auth HTTP auth是HTTP协议自带的用户名/密码验证.如果你使用的是 HTTP auth,可以在初始化provider时提供一个CredentialsPlugin. let provider = MoyaProvider<YourAPI>(plugins: [CredentialsPlugin { _ -> NSURLCredential? in retu…
Endpoints Endpoint是一种半私有的数据结构,Moya用来解释网络请求的根本构成.一个endpoint储存了以下数据: The URL. The HTTP method (GET,POST,等). The request parameters. The parameter encoding (URL,JSON,自定义,等). The HTTP request header fields. The sample response (单元测试用). Providers 将 Target…
Plugins Moya plugins用于反映请求的发起或接收.Plugins定义为 PluginType 属性,可以在请求准备发起和接收到返回数据时回调. Built in plugins Moya有一些共通的默认plugins:安全认证(Authentication),网络请求进度管理(Network Activity Indicator),以及日志(Logging). Authentication authentication plugin允许用户给每个请求指定可选的 NSURLCred…
Providers 使用Moya,你可以通过一个 MoyaProvider 的实例发送所有网络请求,通过枚举来指定你要访问的具体API.在配置你的 Endpoint 之后,你差不多就做好了基础配置: let provider = MoyaProvider<MyService>() 简单配置后,你就可以使用: provider.request(.Zen) { result in // `result` is either .Success(response) or .Failure(error)…
RxSwift Maya提供了一个可选的MoyaProvider 子类 - RxMoyaProvider.在网络请求完成时,我们不再使用 request() 函数的回调闭包,而是使用 Observable. RxMoyaProvider 可以像 MoyaProvider 一样创建和使用: let provider = RxMoyaProvider<GitHub>() 然后,你就可以干很多事情: provider.request(.Zen).subscribe { (event) -> V…
Targets 使用Moya,我们首先需要定义一个target - 这通常是继承 TargetType 协议的 枚举 变量.接下来,你的app只需要处理这些targets,也就是一些你希望调用API完成的操作.例如: FavouriteTweet(tweetID: String). 示例代码: public enum GitHub { case Zen case UserProfile(String) case UserRepositories(String) } Targets必须继承 Tar…
废话不多说直接上代码 // // MoyaNetWorking.swift // GreenAir // // Created by BruceAlbert on 2017/9/18. // Copyright © 2017年 Mars. All rights reserved. // import UIKit import Moya //import Alamofire import RxSwift import SwiftyJSON import ObjectMapper typealias…