【发布时间】:2020-04-19 01:54:31
【问题描述】:
所以我试图返回我在 OnResponse() 中检索到的正文。我可以在调试器中看到主体被检索但没有分配给结果并且 handleHttpRequest() 返回“”?我可以将正文字符串发送到 parseJsonToObject() 的唯一方法是在我不想的 onResponse 女巫中调用它,因为我想将 handleHttpRequest() 用于其他 JSON 请求。我想做的是在handleHttpRequest中返回正文并在doInBackground()中调用parseJsonToObject()。
我的主要问题是为什么不将 body 分配给结果?
内部类 AsyncTaskHandleJson : 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
}
}
【问题讨论】: