依賴地址
//http日志攔截器
implementation 'com.squareup.okhttp3:logging-interceptor:4.2.2'
//retrofit核心庫(kù)
implementation 'com.squareup.retrofit2:retrofit:2.6.2'
//retrofit輔助,gson解析的庫(kù)
implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
// 必要依賴,和Rxjava結(jié)合必須用到
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.2'
//切換到主線程的依賴
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
ApiService的定義
public interface ApiService {
@GET("xxxx/xxxxx/xxxxx")
Observable<School> getSchoolInfo();
@GET("xxxx/xxxxx/xxxxx")
Observable<Student> getStudentInfo();
}
現(xiàn)在模擬場(chǎng)景,先調(diào)用getScholInfo()接口,獲取結(jié)果后再調(diào)用getStudentInfo()接口
final ApiService apiService = retrofit.create(ApiService.class);
apiService.getSchoolInfo().flatMap(new Function<School, ObservableSource<Student>>() {
@Override
public ObservableSource<Student> apply(School school) throws Exception {
//這里可以處理返回的結(jié)果
return apiService.getStudentInfo();//調(diào)用第二個(gè)接口
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Student>() {
@Override
public void accept(Student student) throws Exception {
//這里可以處理第二個(gè)接口的返回結(jié)果
}
});