Использую Retrofit для отправки асинхронных запросов в связке с RxJava.
Объявление класса клиента:
object NasaApiClient {
private const val NASA_BASE_URL="https://images-api.nasa.gov/"
fun getClient(): NasaApiService {
val logging = HttpLoggingInterceptor()
logging.level = HttpLoggingInterceptor.Level.BODY
val okHttpClient = OkHttpClient.Builder()
.addInterceptor(logging)
.readTimeout(20, TimeUnit.SECONDS)
.build()
val gson = GsonBuilder().create()
val retrofit = Retrofit.Builder()
.baseUrl(NASA_BASE_URL)
.client(okHttpClient)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
return retrofit.create(NasaApiService::class.java)
}
}
Get запрос и завязанный на него Rx метод
interface NasaApiService {
@GET("search")
fun mediaInfo(@Query("nasa_id")nasa_id:String): Single<MediaDetail>
}
fun fetchMediaDetails(nasaId:String){
_networkState.postValue(NetworkState.LOADING)
try {
compositeDisposable.add(
apiService.mediaInfo(nasaId)
.observeOn(Schedulers.io())
.subscribeOn(Schedulers.io())
.subscribe ({
Log.e("MediaDetail",it.toString())
_downloadedMediaDetailsResponse.postValue(it)
_networkState.postValue(NetworkState.LOADED)
},{
_networkState.postValue(NetworkState.ERROR)
Log.e("MovieDetailsDataSource", it.message.toString())
})
)
}
catch (e: Exception){
Log.e("MediaDetailsDataSource", e.message.toString())
}
}
Retrofit ничего не логирует. Почему это происходит? LoggingInterceptor ведь подключен.