How to allow all Network connection types HTTP and HTTPS in Android (9) Pie?
Как разрешить все типы сетевых подключений HTTP и HTTPS в Android (9) Pie?
Теперь с Android 9 Pie запросы без шифрования никогда не будут работать. И по умолчанию Система будет ожидать, что вы будете использовать TLS по умолчанию.Вы можете прочитать об этой функции здесь Поэтому, если вы отправляете запросы только через HTTPS, вы в безопасности. Но как насчет приложений, которые отправляют запросы через разные сайты, например, браузерных приложений.
Как я могу включить запросы ко всем типам подключений HTTP и HTTPS в Android 9 Pie?
Переведено автоматически
Ответ 1
Простой способ реализовать это - использовать этот атрибут для вашего AndroidManifest.xml где вы разрешаете все http для всех запросов:
Но на случай, если вам нужны некоторые дополнительные конфигурации для разных ссылок, например, разрешающие http для некоторых доменов, но не для других, вы должны предоставить res/xml/networkSecurityConfig.xml файл.
Чтобы сделать это в Android 9 Pie, вам нужно будет установить networkSecurityConfig в вашем манифесте application тег, подобный этому:
Затем в вашей xml папке вам теперь нужно создать файл с именем network_security_config точно таким же, как вы назвали его в манифесте, и оттуда содержимое вашего файла должно быть таким, чтобы разрешить все запросы без шифрования:
Дальше можно приступать. Теперь ваше приложение будет отправлять запросы для всех типов подключений. Дополнительную информацию по этой теме читайте здесь.
Ответ 2
ПОЛНОСТЬЮ РАБОЧЕЕ РЕШЕНИЕ для Android или React-native пользователей, сталкивающихся с этой проблемой, просто добавьте это android:usesCleartextTraffic="true" в AndroidManifest.xml файл, подобный этому:
Указывает, намерено ли приложение использовать открытый текстовый сетевой трафик, такой как открытый текстовый HTTP. Значение по умолчанию для приложений, ориентированных на API уровня 27 или ниже, равно "true". Приложения, нацеленные на API уровня 28 или выше, по умолчанию имеют значение "false".