gpt4 book ai didi

android - 多个请求进行改造以合并结果

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:03 25 4
gpt4 key购买 nike

我正在使用改造 (1.9) 并尝试弄清楚如何调用 2 个 API 并合并结果。

我想当最后一个 api 完成返回响应时应该合并结果......

我该怎么做?

更新,根据 Antons 的回答,我尝试了以下方法:

添加到gradle:

  compile 'io.reactivex:rxjava:1.0.+'
compile 'io.reactivex:rxandroid:0.23.+'

API接口(interface)

 @GET("/maps/api/place/details/json")
Observable<PlaceDetailResult1> getPlacesFrom1( @Query("key") String key, @Query("placeid") String placeid);


@GET("api/places/{id}/ratings")
Observable<PlaceDetailResult2> getPlacesFrom2(@Path("id") String id);

fragment 中

     IPlaces api = adapter.create(IPlaces.class); //endpoint1
IPlaces api2 = adapter2.create(IPlaces.class); //endpoint2

Observable.combineLatest(
api.getPlacesFrom1("key", placeId),
api2.getPlacesFrom2(placeId),
new Func2<PlaceDetailResult1, PlaceDetailResult2, MergedReviews>() {
@Override
public MergedReviews call(PlaceDetailResult placeDetailResult1, PlaceDetailResult2 placeDetailResult2) {
// processToMerge( placeDetailResult1, placeDetailResult2)
return mr;
}

})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<MergedReviews>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {

}

@Override
public void onNext(MergedReviews mr) {

SetAdapter(mr.reviews);
SetPhotosAdapter(mr.photos);
}
});

可能值得注意的一件事是,当我将 RxJava 添加到 gradle 时出现了一些错误,在我在 gradle 文件中执行 multiDexEnabled true 后错误消失了

最佳答案

您可以使用 RxJava 并像这样组合结果:Combining API calls with RX Java

这是教程,如何使用 RxJava 和 Retrofit 1.9:http://randomdotnext.com/retrofit-rxjava/

关于android - 多个请求进行改造以合并结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com