Ошибка подключения к серверу EC2, размещенному на сервере rails, из приложения kotlin android с помощью okHttp - PullRequest
0 голосов
/ 29 января 2020

Я развернул свой сервер rails на экземпляре EC2, и я пытаюсь получить данные с сервера, используя http-запросы (для этого я использую okHttp . Но у меня возникают проблемы с подключением на некоторых устройствах. I попытался выяснить проблему, но все еще не смог это сделать.

kotlin код:

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. Пожалуйста, дайте мне знать, что может быть здесь не так. .

Обновление: Исключение: соединение CLEARTEXT с 18.224.2.107, не разрешенное политикой безопасности сети, - вот что я получаю.

1 Ответ

1 голос
/ 29 января 2020

Похоже, Android P не разрешает не HTTP-соединения по умолчанию .

Если ваш сервер не поддерживает HTTP, похоже, вы можете включить его специально для этой статьи: http://www.douevencode.com/articles/2018-07/cleartext-communication-not-permitted/

Или даже этот ответ: { ссылка }

...