Retrofit中的嵌套请求
在实际开发中,可能会存在需要先请求A接口,再去请求B接口的情况。比如需要请求获取收藏文章列表,但是需要先登录拿到Cookie才能请求收藏文章列表接口,此时请求就有了先后顺序,使用RxJava 3进行嵌套请求。
Retrofit中的适配器
Retrofit的接口方法返回类型必须是Call,如果能够将Call改为RxJava中的Observable,对于嵌套的情况,就能得到非常方便优雅的解决,这就是适配器的功能,适配器就能够帮助我们转换为其他类型。
嵌套请求:即用户想要获取收藏的文章,就要先登录、再获取。在代码实现就是先进行login登陆,成功后再获取对应信息。
进入wanandroid API开放平台 玩Android 开放API-玩Android - wanandroid.com,使用里面的登录接口为:
https://www.wanandroid.com/user/login 方法:POST 参数: username,password
获取收藏文章接口为:
https://www.wanandroid.com/lg/collect/list/0/json 方法:GET 参数: 页码:拼接在链接中,从0开始。
依赖添加:
implementation("com.squareup.retrofit2:adapter-rxjava3:2.9.0")
implementation("io.reactivex.rxjava3:rxandroid:3.0.0")
第一步:根据Http接口创建Java接口
import io.reactivex.rxjava3.core.Flowable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST