Не удается получить доступ к телу JSON в запросе на получение OKHTTP

#android #android-studio #kotlin #okhttp

Вопрос:

 fun fetchJson(){
        val request = Request.Builder()
                .url("https://covid-193.p.rapidapi.com/statistics?country")
                .get()
                .addHeader("x-rapidapi-key", "mykey")
                .addHeader("x-rapidapi-host", "covid-193.p.rapidapi.com")
                .build()
        val client = OkHttpClient()
        client.newCall(request).enqueue(object: Callback{
            override fun onFailure(call: Call, e: IOException) {
                println("Failed to fetch data")
            }
            override fun onResponse(call: Call, response: Response) {
                val body = response?.body()?.string()
                println(body)
            }
            
        })
    }
 

Я пытаюсь получить некоторые данные из API и отобразить их в своем приложении. В данном коде, ответ?.body()?строка() android studio выделяет часть body() красным цветом. Я не могу получить доступ к данным json из API. Как я могу это исправить?

Комментарии:

1. Используйте дооснащение, так как вам будет легко им пользоваться.

Ответ №1:

Я думаю, что ваша проблема связана с попыткой вызова body как функции, а не как переменной? Я не генерирую никаких ошибок, когда у меня есть линия тела, как:

val body = response.body?.string()

(Чего бы это ни стоило, так как также сказано, что ? включение response было ненужным).