因此,我想发出一个POST请求以将a,b,c值发送到服务器以得到响应,然后再次发出另一个POST请求以发送d,e,f值。
@POST("getRequest")
Call<InitPost> postInit(@Body InitPost initPost); //to send "a", "b", "c"
@POST("getRequest")
Call<InitPostOk> postInitOk(@Body InitPostOk initPostOk); //to send "d","e","f"
它们的POJO不同,但端点相同。是否有可能做到这一点?第一个请求没有问题。
最佳答案
您可以使用RxJava
的Observable.concat()
Observable.concat(yourReftrofitService.postInit(req1), yourReftrofitService.postInitOk(req2))
除了将改造服务更改为(请注意使用
Observable
):@POST("getRequest")
Observable<InitPost> postInit(@Body InitPost initPost);
@POST("getRequest")
Observable<InitPostOk> postInitOk(@Body InitPostOk initPostOk);
如@Pankaj所述,另一种方法是使用
flatMap
...如果要在请求2中使用请求1的结果,则这特别有用。