シンプルで実用的なモヤのrxswift

インポート三者

ポッド'モヤ/ RxSwift'、 '〜> 11.0' 
ポッド'SwiftyJSON'、 '〜> 4.0' 

プロファイル

UIKitのインポート
インポートモヤ
インポートSwiftyJSON 
インポートRxSwift 

//分類要求
パブリック列挙{NetToolの
    
    ケース禅
    ケースUSERPROFILE(文字列)

} 
// MARK: - GET要求https://api.github.com/zen HTTPS://api.github。 COM /ユーザ/ ashfurrow 
////要求された構成
の拡張のNetTool:Moya.TargetType { 
   サーバのアドレス// 
    パブリックベースURLのVAR:URL { 
        URLを返す!(文字列: "https://api.github.com")
    } 
   
    VAR parameterEncoding:ParameterEncoding { 
        リターンJSONEncoding.default 
    } 
    //パス要求
    パブリックパスVAR:文字列{ 
        スイッチのセルフ{  
        ケース.zen:
            リターン"/禅" 
        ケース.userProfile(LET名):
            リターン"/ユーザ/ \(名)" 
        } 
    } 
    //メソッドは、要求された
    メソッドプロパティpublic var:Moya.Method { 
        リターンに.getは
    } 
    //これは、ユニットテストで行われますデータは、管理していない
    データ:公共れるsampleDataするvar { 
        リターン"試験データ" .DATA(使用:.UTF8を)!
    } 
    タスクが時間//要求
    :Moya.Taskプロパティpublic varタスク{ 
        スイッチセルフ{ 
        デフォルト:
            リターン.requestPlainを
        } 
    } 
    / /ヘッド構成要求
    パブリックVARヘッダー:[文字列:文字列] {?
        リターンゼロ
    } 
}

 使い方は簡単、三人の者、完全な分析をインポートすることをお勧めJSONパーサーです

プライベートレット処分= DisposeBag()
    
    のviewDidLoad(){funcをオーバーライド
        super.viewDidLoad()
        プロバイダ= MoyaProvider <のNetTool>(せ)
        provider.rx.request(.userProfile( "ashfurrow")){サブスクライブします。
            (イベント) - >ボイドで
            印刷( "************* \(イベント)")
            スイッチイベント{ 
            ケース.success(応答をしましょう):
                印刷( "?????")
                {ない
                                    情報=試してみましょうresponse.mapJSON()//返回的数据解析成JSON 
                                    印刷(情報)
                                }キャッチ{ 
                                   
                                } 
                ブレーク
            デフォルト:
                 休憩
            } 
        }(で:処分).disposed 
 }

 

おすすめ

転載: www.cnblogs.com/hualuoshuijia/p/12383304.html