Если вы используете RxJava2 с модернизацией, вам нужно что-то вроде этого.Добавьте зависимости для gson & retrofit, и если вы используете rxjava, наблюдаемый в вашем сервисе API модифицированного интерфейса, то, что импортирует адаптер.
/* retrofit, gson */
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
implementation 'com.squareup.retrofit2:converter-scalars:2.4.0'
Тогда ваш конструктор будет выглядеть примерно так:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_API_URL)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
Где,
okHttpClient = new OkHttpClient.Builder().build();
И затем вы можете создать службу,
retrofit.create(RetrofitAPIService.class);
Где ваш RetrofitAPIService будет содержать реализации API примерно так:
@Headers("Content-Type: application/json")
@POST("v1/login/")
Observable<ApiResponse> userLogin(
@Body String body
);