导入三方
pod 'Moya/RxSwift', '~> 11.0' pod 'SwiftyJSON', '~> 4.0'
配置文件
import UIKit import Moya import SwiftyJSON import RxSwift //请求分类 public enum netTool { case zen case userProfile(String) } // MARK: - get请求 https://api.github.com/zen https://api.github.com/users/ashfurrow ////请求的配置 extension netTool: Moya.TargetType { //服务器的地址 public var baseURL: URL { return URL(string: "https://api.github.com")! } var parameterEncoding: ParameterEncoding { return JSONEncoding.default } //请求的路径 public var path: String { switch self { case .zen: return "/zen" case .userProfile(let name): return "/users/\(name)" } } //请求的方法 public var method: Moya.Method { return .get } //这个是做单元测试的数据,不用管 public var sampleData: Data { return "Test data".data(using: .utf8)! } //请求的任务时间 public var task: Moya.Task { switch self { default: return .requestPlain } } //请求头配置 public var headers: [String : String]? { return nil } }
简单的使用,建议导入三方的json解析器,完成解析
private let dispose = DisposeBag() override func viewDidLoad() { super.viewDidLoad() let provider = MoyaProvider<netTool>() provider.rx.request(.userProfile("ashfurrow")).subscribe{ (event) -> Void in print("*************\(event)") switch event { case .success(let response): print("?????") do { let info = try response.mapJSON()//返回的数据解析成 JSON print(info) } catch { } break default: break } }.disposed(by: dispose) }