使用OkHttp3获取JSON时遇Unresolved Reference: url错误求助
解决OkHttp3中“Unresolved reference: url”错误
你的代码核心问题是创建Request.Builder时缺少实例化括号:Request.Builder是类,必须先通过()创建实例,才能调用它的url()实例方法。原写法错误将其当作静态方法调用,导致编译器找不到对应方法,进而触发“url未解析”的报错。
修改后的完整代码:
private fun fetchJson() { println("Attempting to fetch JSON") val url = "https://lordvarun.github.io/back/data.json" // 补全()创建Builder实例 val request = Request.Builder().url(url).build() val client = OkHttpClient() client.newCall(request).enqueue(object: Callback { override fun onResponse(call: Call, response: Response) { val body = response.body?.string() println(body) val gson = GsonBuilder().create() // Kotlin可自动推导泛型,无需额外写<> val homeFeed = gson.fromJson(body, HomeFeed::class.java) } override fun onFailure(call: Call, e: IOException) { println("Failed to execute request") } }) }
额外补充两个注意点:
- Gson的
fromJson方法无需手动指定尖括号<>,Kotlin会自动推导泛型类型 - 确保已正确导入相关类:
import okhttp3.Call import okhttp3.Callback import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response import com.google.gson.GsonBuilder import java.io.IOException
内容的提问来源于stack exchange,提问作者Vishruthaa B
相关产品推荐
相关产品推荐

