zoukankan      html  css  js  c++  java
  • moya rxswift的简单实用

    导入三方

    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)
     }
    
  • 相关阅读:
    C对字符串的部分操作
    <string> <string.h>
    最常见的HTTP错误
    python面试题
    玩转type类型(牛逼克拉斯 )
    django路由系统之反向生成url
    django事物回滚
    django中admin路由系统工作原理
    django中的django admin插件
    ajax跨域资源共享
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/12383304.html
Copyright © 2011-2022 走看看