大家好,我有一个 api 端点,它只接受一个参数“name”: https://api.xxxxx.com/v1/test/ {名称}/
我一直在提出多个请求 (例如 https://api.xxxxx.com/v1/test/ALEX/ 、 https://api.xxxxx.com/v1/test/ELISA/ 、 https://api.xxxxx.com/v1/test/JOE/ )
我需要解析回收器 View 中这 3 个调用的所有数据,每个请求位于不同的行中。
我是否可以发出 3 个请求,然后仅获取 1 个 JSON 响应,以便我可以解析它?实现这一目标的最佳方法是什么?
最佳答案
我假设您的改造 API 接口(interface)中有类似以下代码的内容
@GET("v1/test/{name}/")
Observable<UserModel> getUserBy(@Path("name") name)
然后在您的业务逻辑中您可以调用。
Observable.zip(retrofitApi.getUser("ALEX"), retrofitApi.getUser("ELISA"), retrofitApi.getUser("JOE"), (u1, u2, u3) -> {
// prepare your returned users in a way suitable for further consumption
// in this case I put them in a list
return Arrays.asList(u1, u2, u3);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe( listOfUsers -> // TODO: do something with your users)
希望这有帮助。
关于Java Retrofit 多请求单响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48330933/