使用Kotlin配合RxJava网络请求
来源:互联网 发布:中超数据库 2017 门将 编辑:程序博客网 时间:2024/06/08 13:28
使用 Kotlin 配合 RxJava 进行网络请求
1.首先需要配置Kotlin在项目中
- Android Studio 3.0是自带的,可以在创建项目的时候勾选include kotlin support
- Android Studio 2.0+是需要自己配置的,首先需要安装Kotlin插件,然后在下图这里配置一下,Configure Kotlin in Project
如果在配置了Kotlin,然后gradle 构建时下载慢,可以看看这里 解决Android Studio配置完Kotlin下载慢的问题
2.引入第3方库
我这里使用的是 OkHttp3,RxJava2,RxAndroid
引入如下(在我使用时,这是最新的版本):
- implementation ‘com.squareup.okhttp3:okhttp:3.8.1’
- implementation ‘io.reactivex.rxjava2:rxjava:2.1.2’
- implementation ‘io.reactivex.rxjava2:rxandroid:2.0.1’
- implementation ‘com.google.code.gson:gson:2.8.1’
- implementation ‘com.github.bumptech.glide:glide:4.0.0’
3.正式开始写代码
在MainActivity中写入如下代码
//使用RxJava处理 Observable.create(ObservableOnSubscribe<String> { e -> //使用okhttp3访问网络 val builder = Request.Builder() val request = builder.url(NEWS_URL).get().build() val response = client.newCall(request).execute() val responseBody = response.body() val result = responseBody?.string() //这里的.string()只能用一次 如果下面那一句不注释的话就会报错 //val result2 = responseBody?.string() Log.e(TAG, result) //这里其实形参是String类型,然而实参是String?类型,如果直接传result会报错,在后面加!!即可解决 //发射(这里是被观察者,被观察者发射事件) e.onNext(result!!) //上面那句代码可以这样写 //e.onNext(result as String) }).subscribeOn(Schedulers.io()) //io线程 被观察者 .observeOn(AndroidSchedulers.mainThread()) //主线程 观察者 .subscribe({ //这里接收刚刚被观察者发射的事件 //这个response就是io线程发射过来的result response -> Log.e(TAG, response) })
简简单单的总结
看似代码极少的demo,可是我却遇到了很多的挫折,,搞了好久好久才写好,主要是遇到错误的话,这种东西网上不好找解决方案….
阅读全文
0 0
- 使用Kotlin配合RxJava网络请求
- Kotlin新语言使用RxJava+Retrofit请求网络数据+lambda表达式+RecyclerView展示+Glide展示图片
- Android Kotlin 开发--偶遇Rxjava、Retrofit进行网络请求
- (译)使用Kotlin和RxJava处理复杂的请求
- rxjava 和retrofit 结合使用 请求网络
- Kotlin网络请求
- kotlin的网络请求
- Retrofit + RxJava的配合使用
- RXJava+Retrofit网络请求
- Okhttp网络请求+Rxjava
- 新语言Kotlin使用recyclerview展示数据+retrofit请求数据+Rxjava
- RxJAVA和Retrofit在安卓中网络请求使用实例
- Android使用RxJava+Retrofit请求网络的小Demo
- 使用Retrofit结合RxJava实现Get与Post网络请求
- MVP框架使用Retrofit+Rxjava请求网络数据
- 使用RxJava来实现网络请求轮询功能
- kotlin for android----------MVP模式下(OKHttp和 Retrofit+RxJava)网络请求的两种实现方式
- RxJava 初探(网络请求)
- Struts中ActionContext.getContext()的用法
- PHP 解决中文输出成乱码
- Android 设置adjustResize失效
- 在Python中实现PageFactory模式
- 安装cocoapods时候出现错误如下: sudo gem install cocoapods ERROR: While executing gem … (OpenSSL::SSL::SSLErro
- 使用Kotlin配合RxJava网络请求
- 白话经典算法系列之十六 “基数排序”之数组中缺失的数字
- ubuntu下mysql5.7的'Access denied for user 'root'@'localhost' (using password: YES)'错误
- 安卓apk反编译
- Kotlin入门(11)江湖绝技之特殊函数
- FZU 2150Fire Game
- 向您的项目添加 C 和 C++ 代码
- vector
- atan和atan2