使用 okHttp 从 kotlin android 应用程序连接到 EC2 托管 rails 服务器时出错
Error in connecting to EC2 hosted rails server from kotlin android app using okHttp
我在 EC2 实例上部署了我的 rails 服务器,我正在尝试使用 http 请求从服务器获取数据(为此我正在使用 okHttp。但是我在一些设备。我尝试找出问题,但仍然无法做到。
科特林代码:
val client = OkHttpClient()
val body = FormBody.Builder().build()
// to create url I am using server IP directly without any port
val urlNetworkCheck = Constants.URL_CHECK_NETWORK_CONNECTION // http://10.40.21.16/api/v1/check_network
val requestNetworkCheck = Request.Builder().url(urlNetworkCheck).post(body).build()
client.newCall(requestNetworkCheck).enqueue(object: Callback {
override fun onResponse(call: Call, response: Response) {
val responseNetworkCheck = response.body?.string()
logger.info { "Network connection is present." }
}
override fun onFailure(call: Call, e: IOException) {
logger.info { "Could not connect to server. Exception: " + e.message }
runOnUiThread {
showToast(Constants.TOAST_NETWORK_ERROR)
}
}
})
在许多设备上,显示的是 TOAST_NETWORK_ERROR。请让我知道这里可能有什么问题。
更新:异常:我得到的是网络安全策略不允许与 18.224.2.107 的 CLEARTEXT 通信。
看起来Android P默认不允许非HTTP连接。
如果你的服务器不支持HTTPs,好像可以根据这篇文章专门启用它:http://www.douevencode.com/articles/2018-07/cleartext-communication-not-permitted/
甚至这个答案:
我在 EC2 实例上部署了我的 rails 服务器,我正在尝试使用 http 请求从服务器获取数据(为此我正在使用 okHttp。但是我在一些设备。我尝试找出问题,但仍然无法做到。
科特林代码:
val client = OkHttpClient()
val body = FormBody.Builder().build()
// to create url I am using server IP directly without any port
val urlNetworkCheck = Constants.URL_CHECK_NETWORK_CONNECTION // http://10.40.21.16/api/v1/check_network
val requestNetworkCheck = Request.Builder().url(urlNetworkCheck).post(body).build()
client.newCall(requestNetworkCheck).enqueue(object: Callback {
override fun onResponse(call: Call, response: Response) {
val responseNetworkCheck = response.body?.string()
logger.info { "Network connection is present." }
}
override fun onFailure(call: Call, e: IOException) {
logger.info { "Could not connect to server. Exception: " + e.message }
runOnUiThread {
showToast(Constants.TOAST_NETWORK_ERROR)
}
}
})
在许多设备上,显示的是 TOAST_NETWORK_ERROR。请让我知道这里可能有什么问题。
更新:异常:我得到的是网络安全策略不允许与 18.224.2.107 的 CLEARTEXT 通信。
看起来Android P默认不允许非HTTP连接。
如果你的服务器不支持HTTPs,好像可以根据这篇文章专门启用它:http://www.douevencode.com/articles/2018-07/cleartext-communication-not-permitted/
甚至这个答案: