1

我正在尝试将来自 localhost 的 REST API 与 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)
}

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

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"/>
4

2 回答 2

2

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

于 2018-05-10T07:55:19.027 回答
0

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

于 2018-07-24T11:51:21.583 回答