Ошибка сети: прозрачный текст недопустим
Ошибка "net err cleartext not permitted" (Ошибка сети: запрещен незащищенный текст) обычно возникает в Android-приложениях, работающих на платформе API 28 и выше. С целью повышения безопасности, Google приложил усилия к тому, чтобы защитить данные, передаваемые через сеть, и поэтому в новых версиях Android по умолчанию отключено использование незащищенного (незашифрованного) текста при передаче данных по сети.
Данная ошибка возникает, когда приложение пытается осуществить запрос по незащищенному протоколу (http) вместо защищенного (https). Она связана с политикой безопасности сетевых запросов в платформе Android.
Для исправления этой ошибки необходимо обновить приложение таким образом, чтобы оно использовало защищенный протокол для сетевых запросов. Для этого можно использовать стандартный HTTPS-протокол или другие безопасные сетевые библиотеки, такие как OkHttp или Volley. Ниже приведен пример кода, показывающий, как использовать OkHttp для выполнения защищенных сетевых запросов.
1. Включить зависимость OkHttp в файле build.gradle вашего приложения:
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
}
2. Создать экземпляр клиента OkHttp:
OkHttpClient client = new OkHttpClient();
3. Создать экземпляр запроса с использованием защищенного протокола (https):
String url = "https://www.example.com/api/data";
Request request = new Request.Builder()
.url(url)
.build();
4. Выполнить запрос асинхронно и обработать результат:
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// Обработка ошибки
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// Обработка успешного ответа
String responseData = response.body().string();
// Дальнейшая обработка данных
}
});
В данном примере метод `enqueue` асинхронно выполняет запрос и позволяет обрабатывать результаты в коллбэке. В случае ошибки (например, если устройство не подключено к интернету) будет вызван метод `onFailure`, а в случае успешного ответа - метод `onResponse`.
Таким образом, при использовании OkHttp для сетевых запросов вы будете выполнять защищенные запросы, что позволит избежать ошибки "net err cleartext not permitted" и обеспечит безопасность передачи данных в вашем приложении.