美文网首页
Android-推荐一个简单易用的网络库(rxhttp)

Android-推荐一个简单易用的网络库(rxhttp)

作者: 阿博聊编程 | 来源:发表于2022-08-21 15:48 被阅读0次
    图片来源网络,入侵必删

    在日常的Android开发中,我们肯定使用进行网络请求。如果是初学者,自己封装一个网络请求库是有难度的,这里我分享一个简单应用的网络库——rxhttp。之前做小项目的时候,我使用过感觉非常的友好。希望这篇文章能帮一些初学Android的小伙伴提高开发效率。

    rxhttp

    一个简单易用的网络请求库。

    rxhttp的优势

    1. 30秒即可上手,学习成本极低
    2. 史上最优雅的支持 Kotlin 协程
    3. 史上最优雅的处理多个BaseUrl及动态BaseUrl
    4. 史上最优雅的对错误统一处理,且不打破Lambda表达式
    5. 史上最优雅的文件上传/下载/断点下载/进度监听,已适配Android 10
    6. 支持Gson、Xml、ProtoBuf、FastJson等第三方数据解析工具
    7. 支持Get、Post、Put、Delete等任意请求方式,可自定义请求方式
    8. 支持在Activity/Fragment/View/ViewModel/任意类中,自动关闭请求
    9. 支持全局加解密、添加公共参数及头部、网络缓存,均支持对某个请求单独设置

    rxhttp的引入

    必须的依赖:

    //annotationProcessor无需依赖额外插件
    plugins {
        // kapt/ksp 选其一
        // id 'kotlin-kapt'
        id 'com.google.devtools.ksp' version '1.7.10-1.0.6'
    }
    
    //让IDE知道ksp生成的kotlin代码(仅使用ksp时才需要)
    kotlin {
        sourceSets.debug {
            //如果通过productFlavors配置了多渠道,则配置 /../ksp/xxxDebug/kotlin
            kotlin.srcDir("build/generated/ksp/debug/kotlin")
        }
    }
    
    dependencies {
        def rxhttp_version = '2.9.2'
        implementation 'com.squareup.okhttp3:okhttp:4.10.0'  
        implementation "com.github.liujingxing.rxhttp:rxhttp:$rxhttp_version"
        // ksp/kapt/annotationProcessor 选其一
        ksp "com.github.liujingxing.rxhttp:rxhttp-compiler:$rxhttp_version"
     }
    

    可选配置-Converter

    //非必须,根据自己需求选择 RxHttp默认内置了GsonConverter
    implementation "com.github.liujingxing.rxhttp:converter-serialization:$rxhttp_version"
    implementation "com.github.liujingxing.rxhttp:converter-fastjson:$rxhttp_version"
    implementation "com.github.liujingxing.rxhttp:converter-jackson:$rxhttp_version"
    implementation "com.github.liujingxing.rxhttp:converter-moshi:$rxhttp_version"
    implementation "com.github.liujingxing.rxhttp:converter-protobuf:$rxhttp_version"
    implementation "com.github.liujingxing.rxhttp:converter-simplexml:$rxhttp_version"
    

    可选配置-rxJava:

    implementation 'io.reactivex.rxjava3:rxjava:3.1.5'
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
    implementation 'com.github.liujingxing.rxlife:rxlife-rxjava3:2.2.2' //管理RxJava3生命周期,页面销毁,关闭请求
    

    截止我发博客,开源库的最新版本是2.9.2.最新版本请查看开源库的wiki

    rxhttp的使用

    RxHttp.get("http://...")  //第一步,确定请求类型,可以选择postForm、postJson等方法           
        .asString()           //第二步,确定返回类型,这里返回String类型      
        .subscribe(s -> {     //第三步,订阅观察者,第二步返回Observable对象
            //请求成功                                         
        }, throwable -> {                                  
            //请求失败                                         
        });                                                
    

    这是一个简单的Get请求。

    Post请求表单
    RxHttp.postForm("http://...")  //发送表单形式的Post请求           
        .asString()                //返回String类型      
        .subscribe(s -> {          //订阅观察者,
            //请求成功                                         
        }, throwable -> {                                  
            //请求失败                                         
        }); 
    

    Post请求Json字符串

    RxHttp.postJson("http://...")  //发送Json字符串单形式的Post请求           
        .asString()                //返回String类型      
        .subscribe(s -> {          //订阅观察者,
            //请求成功                                         
        }, throwable -> {                                  
            //请求失败                                         
        });   
    

    相关文章

      网友评论

          本文标题:Android-推荐一个简单易用的网络库(rxhttp)

          本文链接:https://www.haomeiwen.com/subject/qipigrtx.html