Найти в Дзене
takoedelo

Как использовать HTTP-трафик в Android

Оглавление

Когда я запускаете приложение на эмуляторе, оно падает, и при проверки журналов, выходит сообщение:“Cleartext HTTP traffic is * not allowed”.. По этой причине вы не можете проверить функциональность своего приложения.

Способ исправить незашифрованный HTTP-трафик

Эта проблема может быть решена несколькими методами, поэтому сначала мы начнем с наименее эффективных шагов и постепенно увеличим сложность.

Вместо использования HTTP используйте HTTPS

Самый простой способ исправить это-использовать HTTPS-соединение через HTTP. Как вы знаете, HTTP-соединение не является безопасным способом соединения. Он несет в себе много рисков, поэтому, чтобы избежать этого, Android не рекомендует использовать HTTP-соединение после выпуска Android Marshmallow.

Чтобы избежать этого, просто перейдите в файл, где вы явно объявили свой IP -адрес, и, если возможно, измените его на HTTPS и запустите приложение.

тест инструмента appwrite backend на локальном хосте и мобильный телефон для тестирования функциональности, для localhost нужно переслать соединение с помощью ngrok.

Ради понимания я показал вам, где и как изменить файл.

-2
-3

После внесения изменений запустите приложение, нажав Shift + F10, и вы обнаружите, что ваше приложение будет работать без каких-либо ошибок.

Добавить usesCleartextTraffic=”true” в AndroidManifest.xml

Что делать, если у вас нет HTTPS -соединения? Хорошо, у нас есть решение для этого. Вам просто нужно добавить один атрибут в AndroidManifest.xml файл, который позволит вам использовать HTTP-соединения в вашем приложении Android.

Откройте AndroidManifest.xml файл и под тегом <application> добавьте строку, android:usesCleartextTraffic=”true” она включает HTTP - соединение, которое по умолчанию отключено после выпуска Marshmallow.

-4

Теперь запустите приложение.

Создать res/xml/network_security_config.xml и изменить AndroidManifest.xml

Если вы хотите получить больше контроля над сетью, то этот метод для вас, потому что здесь вы можете добавить список URL-адресов для использования cleartextTraffic и использовать пользовательские CAS (центры сертификации), закрепление сертификатов и многие другие важные аспекты.

Прежде всего, вам нужно создать файл network_security_config в каталоге XML в каталоге RES.

Внутри network_security_config.xml, скопируйте и вставьте приведенный ниже фрагмент кода и измените доменное имя на фактическое имя.

-5

Добавьте выделенную строку в AndroidManifest.xml чтобы указать файл конфигурации сети под тегом <application>.

-6

Этот метод не сработает, если вы работаете в среде localhost или используете HTTP-соединение.

В результате это приложение выйдет из строя с сообщением об ошибке “CLEARTEXT communication to ac50-122-177-251-224.ngrok.io not permitted by network security policy”.

Чтобы решить эту проблему, добавьте тег <base-config> в network_security_config.xml с cleartextTrafficPermitted=”true”.

-7
Добавить тег base-config в конфигурацию сетевой безопасности
Добавить тег base-config в конфигурацию сетевой безопасности
Обновить AndroidManifest.xml
Обновить AndroidManifest.xml

После внесения следующих изменений вы можете запустить свои приложения, чтобы проверить рабочие функции.

Почему возникла эта ошибка и что такое cleartext ?

Причиной этой ошибки является реализация сетевой политики, которая не позволяет использовать HTTP-соединения для создания безопасного соединения для передачи данных по сети. До Android Nougat вы можете использовать HTTP-соединение без внесения каких-либо изменений, но после этого вы не сможете, пока не внесете необходимые изменения.

И ваш последний вопрос о cleartext: это проще говоря, текст или данные, которые не зашифрованы, известны как “открытый текст”, который может быть легко прочитан кем угодно при прохождении через сеть.

Завершение

Вот и все, чтобы разрешить использовать HTTP-трафик с открытым текстом, не разрешенный в Android.

Поскольку мы обсудили несколько методов устранения вышеуказанной ошибки, вам решать, какой метод вы предпочитаете использовать, если Google рекомендует использовать HTTPS-соединение.

Вам нужен VPN в Linux?

Как переместить файл в Linux

Где изучать Linux