ruby-on-rails - 使用 okHttp 从 kotlin android 应用程序连接到 EC2 托管的 Rails 服务器时出错
问题描述
我在 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/
推荐阅读
- python - 如何按列的值计数对熊猫数据框进行排序?
- arrays - 基于另一列的数组公式
- ruby-on-rails - ActiveRecord::StatementInvalid, PG::UndefinedTable 错误,但生成的 SQL 有效
- javascript - 将 Htmlwebpackplugin 与 Webpack-Dev-Middleware 一起使用
- javascript - 即使存在,也无法选择网页上的元素
- c++ - 使用联合和标签
- c++ - 进程结束后的 DLL 支持
- javascript - 我使用 JavaScript 构建的自定义画廊过滤导致页面崩溃。我的代码的哪一部分可能导致它?
- ios - Swift无法识别的选择器发送到实例
- oracle - 检查功能是否启用 Oracle 12g 12.2