我需要进行api调用,并将json响应反序列化为我编写的模型类(QueryRecipesModel)的实例。该函数应返回该实例。我尝试使用okhttp3和gson。
fun queryRecipes(query: String): QueryRecipesModel {
lateinit var queryRecipesModel: QueryRecipesModel
val url="https://api.chefkoch.de/v2/recipes/?query=$query"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object: Callback{
override fun onResponse(call: Call, response: Response) {
val responsecontent = response.body()?.string()
val gson = GsonBuilder().create()
queryRecipesModel = gson.fromJson(responsecontent, QueryRecipesModel::class.java)
}
override fun onFailure(call: Call, e: IOException) {
println("Fail")
}
})
return queryRecipesModel
}
问题似乎是我初始化queryRecipesModel时采用的入队方法,但是queryRecipes函数无法识别它。而是使用newCall.execute也不起作用。 有任何想法吗?预先感谢。