Tsudzukeru
@Tsudzukeru

Почему Rerofit не пишет ответ в лог?

Использую 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 ведь подключен.
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
Tsudzukeru
@Tsudzukeru Автор вопроса
После обновления версии Retrofit и OkHttp - всё работает!
//Retrofit
    def retrofit_version = "2.9.0"
    implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
    implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"
    implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
    implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы