因此,我想发出一个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不同,但端点相同。是否有可能做到这一点?第一个请求没有问题。

最佳答案

您可以使用RxJavaObservable.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的结果,则这特别有用。

07-24 09:21