1

I'm doing multiple POSTs requests and I would like wait until the server comes back with a response after each POST.

Here is my code from the presenter:

    public void sendMessage(final Message message, final String mediaFileName) {

    messageSender.sendMessage(message)
            .subscribeOn(processScheduler)
            .subscribe(new DisposableSubscriber<Response<ResponseBody>>() {
                @Override
                public void onNext(Response<ResponseBody> responseBodyResponse) {
                    if (responseBodyResponse.code() >= 200 && responseBodyResponse.code() < 300 && responseBodyResponse.isSuccessful()) {
                        SharedPrefs.setLastMessageId(message.getMsgId());
                        Timber.d("Sent message: " + message.getContent() + " with id " + message.getMsgId());
                    }
                }

                @Override
                public void onError(Throwable t) {
                    Timber.e("Error occurred while attempting to send message: " + t.getMessage());
                }

                @Override
                public void onComplete() {
                    if (mediaFileName != null) {
                        retrieveMediaFile(mediaFileName, message);

                    }
                }
            });

}

Here is the interactor :

public class MessageSenderImpl implements MessageSender {

private final Service service;
private final AuthCredentials authCredentials;

public MessageSenderImpl(Service service, AuthCredentials authCredentials) {
    this.service = service;
    this.authCredentials = authCredentials;
}

@Override
public Flowable<Response<ResponseBody>> sendMessage(Message message) {
    return service.sendMessage(authCredentials.auth(), message);
}

}

and my request:

@POST("someEndPoint")
Flowable<Response<ResponseBody>> sendMessage(@Header("Authorization") String auth, @Body Message message);

If for example I'm sending 10 POSTs, the response from the 3rd request might come back after the 10th one.

Note: Newbie in the RX world. Thank you in advance!

android enthusiast
  • 2,062
  • 2
  • 24
  • 45

1 Answers1

0

Maybe, you can use Observable.zip(Observable1, Observable2, ...)

Please look at HERE

Cheng
  • 541
  • 5
  • 17