How to Handle Api Call Using Rxjava2 and Retrofit2 in android


In this blog we are going handle api calls using Rxjava and Retrofit library which makes simple and cleaner way to define API.

RxJava is a Java VM implementation of Reactive Extensions a library for composing asynchronous and event-based programs by using observable sequences.

Retrofit is a REST Client for Android and Java. It makes it relatively easy to retrieve and upload JSON. Retrofit uses the OkHttp library for HTTP requests.

Add the following dependencies to your gradle file

Once the dependencies are all set up, We would need an instance of Retrofit to make network calls.

baseUrl-> Set up Base URL of API

addConverterFactory() — converter factory for serialization and deserialization of objects

We can define post parameter for the API. The APIs are declared in an interface:

In Rx, the subscriber implements three methods to interact with observable:

  1. onNext(Data): Receives the data from the observable
  2. onError(Exception): Gets called if an exception is thrown
  3. onCompleted(): Gets called when the data stream ends

For Android, to subscribe to an observable, we first tell the observable about the threads on which we plan to subscribe to and observe.

Making an API call:

That’s it, we can use the Observable/Flowable returned by the API and subscribe() to it to handle the data

Merging the multiple requests in Rxandroid 

Merge operator combine multiple observable into one


. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


    Worked! Thanks for code.
  • css.php

    It was a successful collaboration. The Mobikul team provided the client everything they needed in a timely and high-quality manner. They were very professional, reliable, and accessible during the entire process. The client also saw no room for any improvements in the vendor's performance.

    Vincenzo Carrano

    Vincenzo Carrano

    Administrator, Segshop

    Talk to Sales


    Live Chat
    Start a Project

      Message Sent!

      If you have more details or questions, you can reply to the received confirmation email.

      Back to Home