【问题标题】:java.net.ConnectException: failed to connect to /192.168.1.107 (port 80) after 10000ms: isConnected failed: EHOSTUNREACH (No route to host)java.net.ConnectException:10000 毫秒后无法连接到 /192.168.1.107(端口 80):isConnected 失败:EHOSTUNREACH(没有到主机的路由)
【发布时间】:2018-10-19 04:18:30
【问题描述】:

我正在尝试将我的 REST API 从 localhost 与 android 应用程序连接起来。 我在 Windows 上使用 xampp 作为我的 apache 服务器。当我尝试通过 Postman 使用此链接从我的计算机获取信息时,其余 api 工作正常:

http://127.0.0.1/RightBoard/Web/right-board/public/api/login

在 Android 设备上,我正在尝试使用 Volley 获取响应。这是我的代码:

fun post(url: String, params: MutableMap<String, String>, listener: ResponseListener, token: String = "") {
    val request = object : StringRequest(
            Request.Method.POST,
            url,
            Response.Listener<String> {
                listener.onResponseReceived(JSONObject(it))
            },
            Response.ErrorListener {
                it.printStackTrace()
                if (it.networkResponse?.data != null) {
                    val json = JSONObject(it.networkResponse.data.toString(Charsets.UTF_8))
                    Log.e(Keys.TAG, json.toString())
                }
            }
    ) {
        override fun getParams(): MutableMap<String, String> {
            return params
        }

        override fun getHeaders(): MutableMap<String, String> {
            val headers = HashMap<String, String>()
            headers["Authorization"] = "Bearer $token"
            return headers
        }
    }
    request.retryPolicy = DefaultRetryPolicy(
            10000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT
    )
    VolleySingleton.instance?.addToRequestQueue(request)
}

网址是http://192.168.1.107/RightBoard/Web/right-board/public/api/login,我从ipconfig 得到IP="192.168.1.107"。但现在我收到了这个错误:

java.net.ConnectException: failed to connect to /192.168.1.107 (port 80) after 10000ms: isConnected failed: EHOSTUNREACH (No route to host)

我检查了手机和电脑是否在同一个 wifi 中。我在另一部手机上运行该应用程序。我什至尝试重新启动计算机和 xampp ......但每次都出现同样的错误。 我也在我的应用中使用了权限:

<uses-permission android:name="android.permission.INTERNET"/>

【问题讨论】:

  • 你检查过这个SO
  • @Sagar 是的,我在我的问题中也提到了这一点

标签: android kotlin android-volley connectexception ehostunreach


【解决方案1】:

通过检查命令提示符(ipconfig)到您的.class,Httppost url =(“http://192.168.0.116/something.php”)来设置IP地址,并将您的手机连接到与您的系统IP地址相同的wifi地址,然后重新启动您的手机它肯定可以工作。

【讨论】:

    【解决方案2】:

    我找到了解决方案。 我禁用了 Windows Defender 防火墙(在我的网络处于活动状态的私人部分中)

    【讨论】:

    • 我也有同样的问题,但是使用 OkHttp 时我无法弄清楚问题是什么。你说你拨了windows防火墙?我想知道当你在手机上运行它时有什么区别?我有一台 Mac,我厌倦了关闭我的防火墙,但这没有用
    • @Jonas 因为主机在我的笔记本电脑上是本地的,并且 Windows 防火墙以某种方式阻止了手机和笔记本电脑之间的数据传输
    • 嗨,我已经尝试了上述所有解决方案,对我来说都是一样的(未解决)。我还在我的 Mac 的 localhost 上运行服务器,我正在尝试通过相同的 Wi-Fi 将 android(5.1.1 操作系统)连接到它。
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多