Итак, я пытаюсь вернуть тело, которое я получаю в OnResponse (). В отладчике я вижу, что тело извлекается, но не присваивается результату, а handleHttpRequest () возвращает ""? Единственный способ, которым я могу отправить тело String в parseJsonToObject (), это вызвать его в onResponse, который я не хочу, потому что я хочу использовать handleHttpRequest () для других JSON запросов. Что я хочу сделать, это вернуть тело в handleHttpRequest и вызвать parseJsonToObject () в doInBackground ().
Мой главный вопрос: почему тело не присваивается результату?
внутренний класс AsyncTaskHandle Json: AsyncTask () {
override fun doInBackground(vararg url: String?): String? {
handleHttpRequest()
return "";
}
private fun handleHttpRequest(): String? {
val url = "https://www.noforeignland.com/home/api/v1/places/";
val client = OkHttpClient();
var result: String? = "";
val request = Request.Builder().url(url).build();
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
println(e)
}
override fun onResponse(call: Call, response: Response) {
val body = response?.body?.string();
result = body;
parseJsonToObjct(body)
}
})
return result
}
}