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

2022-08-21  本文已影响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 -> {                                  
        //请求失败                                         
    });   
上一篇下一篇

猜你喜欢

热点阅读