Retrofit2+RxJava3使用

开发工具:Androidstudio

Retrofit2的使用

1.先添加依赖

implementation 'com.squareup.retrofit2:retrofit:2.9.0'

2.实现请求方法

public interface RetrofitService {

    @GET("users/{user}/repos")
    Call<ResponseBody> listRepos(@Path("user") String user);

}

 3.在Activity里使用

class BaseRetrofitActivity: Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val retrofit = Retrofit.Builder()
            .baseUrl("https://api.github.com/")
            .build()

        val service = retrofit.create(RetrofitService::class.java)
        service.listRepos("octocat").enqueue(object : Callback<ResponseBody> {
            override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
                val str = response.body()?.bytes()?.let { String(it) }
                System.currentTimeMillis()
            }

            override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
                System.currentTimeMillis()
            }
        })
    }

}

Retrofit2+Converter

1.添加依赖

    implementation 'com.squareup.retrofit2:retrofit:2.9.0'

    //转换器
    implementation "com.google.code.gson:gson:2.8.6"
    implementation "com.squareup.retrofit2:converter-gson:2.9.0"

 2.实现请求方法

public interface AddConverterRetrofitService {

    @GET("users/{user}/repos")
    Call<List<User>> listRepos(@Path("user") String user);

}

3.在Activity里使用

class AddConverterRetrofitActivity: Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val retrofit = Retrofit.Builder()
            .baseUrl("https://api.github.com/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()

        val service = retrofit.create(AddConverterRetrofitService::class.java)
        service.listRepos("octocat").enqueue(object : Callback<List<User>> {
            override fun onResponse(call: Call<List<User>>, response: Response<List<User>>) {
                System.currentTimeMillis()
            }

            override fun onFailure(call: Call<List<User>>, t: Throwable) {
                System.currentTimeMillis()
            }
        })
    }

}

Retrofit2+Converter+RxJava3

1.添加依赖

    implementation 'com.squareup.retrofit2:retrofit:2.9.0'

    //添加转换器
    implementation "com.google.code.gson:gson:2.8.6"
    implementation "com.squareup.retrofit2:converter-gson:2.9.0"

    //rxjava3
    implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'

 2.实现请求方法

public interface RxJavaAndAddConverterRetrofitService {

    @GET("users/{user}/repos")
    Observable<List<User>> listRepos(@Path("user") String user);

}

3.在Activity里使用

class RxJavaAndAddConverterRetrofitActivity: Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val retrofit = Retrofit.Builder()
            .baseUrl("https://api.github.com/")
            .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())
            .build()

        val service = retrofit.create(RxJavaAndAddConverterRetrofitService::class.java)
        service.
            listRepos("octocat")
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(object : Observer<List<User>>{
                override fun onSubscribe(d: Disposable) {
                    System.currentTimeMillis()
                }

                override fun onNext(t: List<User>) {
                    System.currentTimeMillis()
                }

                override fun onError(e: Throwable) {
                    System.currentTimeMillis()
                }

                override fun onComplete() {
                    System.currentTimeMillis()
                }
            })
    }

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值