安卓:Retrofit与RxJAVA做一个简单的Get请求

本文介绍了如何在安卓应用中结合Retrofit和RxJava进行简单的GET网络请求。首先,文章提到了Retrofit是一个基于Okhttp的HTTP客户端封装,用于定义RESTful API接口。接着,概述了RxJava的观察者模式原理,它允许按顺序发送和接收事件。随后,文章演示了如何配置依赖并执行GET请求来获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先导入依赖:
RxJava:原理 基于 一种扩展的观察者模式
被观察者 (Observable) 通过 订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Observer) 按顺序接收事件 以及作出对应的响应动作

implementation'io.reactivex.rxjava2:rxjava:2.2.8'
implementation'io.reactivex.rxjava2:rxandroid:2.1.0'

Retrofit:
Retrofit 是一个 Restful 的 http 网络请求框架的封装,网络请求的工作本质上是 Okhttp 完成,而 Retrofit 仅负责 网络请求接口的封装

//Retrofit依赖
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    //Gson converter gson解析
    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

    //RxJava2 Adapter
    implementation "com.squareup.retrofit2:adapter-rxjava2:2.3.0"
    /okhttp
    implementation 'com.squareup.okhttp3:okhttp:3.4.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'

下面开始做一个Get的网络请求:

//RxJava写一个接口
interface Rx_Api {
    @GET("index_data.json")
    //被观察者
    fun ob():Observable<Re_bean>
}
//Retrofit准备工作
class MyRetrofit{
      var retrofit: Retrofit?=null
         get() {
         //创建一个Client
        val okHttpClient = OkHttpClient()
        return Retrofit.Builder().client(okHttpClient)//创建一个Retrofit  并且放入一个Client
            .baseUrl("http://mock.fulingjie.com/mock-android/data/")//URL
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())//Rx的适配器
            .addConverterFactory(GsonConverterFactory.create())//Gson的适配器
            .build()//构建
    }
}

请求数据:

 MyRetrofit().retrofit!!.create(Rx_Api::class.java)
            .ob()//被观察者
            .subscribeOn(Schedulers.io())//在io线程
            .observeOn(AndroidSchedulers.mainThread())//观察者在主线程
            .subscribe(object : Observer<Re_bean> {//订阅
                override fun onComplete() {
                }

                override fun onSubscribe(d: Disposable) {
                }
                //请求的数据
                override fun onNext(t: Re_bean) { 
                }
                //错误信息
                override fun onError(e: Throwable) {
                    print(e.toString())
                }
            })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值