【发布时间】:2020-06-01 13:12:30
【问题描述】:
我正在尝试调试并找出无法正常工作的原因以及如何使其正常工作。
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
...
fetchJson()
}
所以这只是调用我的函数fetchJson
这是函数:
fun fetchJson() {
println("Attempting to Fetch JSON")
val url = "https://www.mocky.io/v2/5ed340ab340000650001f28c"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object: okhttp3.Callback {
override fun onFailure(call: okhttp3.Call, e: IOException) {
println("Failed to execute request")
}
override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
val body = response?.body?.string()
println(body)
println("success")
val gson = GsonBuilder().create()
val homeFeed = gson.fromJson(body, note::class.java)
/* runOnUiThread {
recycler_view.adapter = MainAdapter(homeFeed)
}*/
}
})
这背后的想法是您获取 JSON 数据并将其放入适配器类中并在卡片视图中显示它们。
我的问题不在于适配器或卡片视图,而在于其余的 API。它不想与我的模拟休息 API 一起工作,但它会与其他休息 API 一起工作。我不知道为什么?
我试图添加一个网络安全异常,我不得不删除我的适配器类只是为了让它说成功。当我收到 onresponse 调用时,我仍然无法在控制台中找到 JSON 正文,并且因为我在调试控制台中没有收到错误,所以我不知道发生了什么。
我不知道这里有什么问题。是 GSON 转换器吗?其余的 API,我的代码?我的模拟器有问题吗?...等等?
主体应打印到控制台的类:
class note(val noteis: List<Mlist>)
class Mlist(val text1: String, val text2: String, val text3: String)
【问题讨论】:
-
and because I don't get error's in the debug console好吧,您的onFailure方法在这里并不是特别有用。打印请求失败不会帮助您进行调试,而是应该打印异常的堆栈跟踪。onFailure不仅仅是因为请求失败,而是请求失败,这不是一回事:)
标签: java android json kotlin kotlin-android-extensions