无法从 kotlin 连接到本地主机,但可以连接到在线 API



所以有这个问题,我无法连接到我的本地主机,我可以在线上,这是我的代码,我只能在调试器中执行请求

 fun fetchJson() {
    println("Attempting to Fetch JSON")
    val url = "http://192.168.1.***:8*/demo/mysql/selector.php"
    val request = Request.Builder().url(url).build()
    val client = OkHttpClient()
    client.newCall(request).enqueue(object: Callback {
        override fun onResponse(call: Call, response: Response) {
            val resulta=response.body()?.string();
            println(resulta)
            println("Sucees")
            val gson = GsonBuilder().create()
            val homeFeed = gson.fromJson(resulta, HomeFeed::class.java)
            runOnUiThread {
                recyclerView_main.adapter = MainAdapter(homeFeed)
            }

        }
        override fun onFailure(call: Call, e: IOException) {
            println("Failed to execute request")
        }
    })
 }

我尝试了10.0.2.2 IP与我可以在代码中使用该地址从浏览器访问文件

中的文件一样。

,如果您至少要发布异常的消息将有所帮助。也许...

println("Failed to execute request: ${e.message}")

另外,请看一下堆栈溢出的问题指南

但是,只是猜测...

这可能与您的本地服务器以及它如何进行内容谈判有关。如果php页面确实提供JSON(而不是渲染HTML(,则可以尝试将accept标头添加到您的请求中。

val request = Request.Builder()
    .url(url)
    .header("Accept", "application/json")
    .build()

相关内容