Небезопасный HTTP Flutter не разрешен из-за ошибки платформы

#java #flutter #ubuntu

Вопрос:

Я пытаюсь сделать запрос http post, чтобы спасти пользователя из приложения flutter, запущенного на реальном устройстве. Я запускаю API Springboot RESTful на сервере ubuntu с настройкой nginx. Запрос почтальона может быть отправлен. Я уже пытался добавить android:usesCleartextTraffic="true" тег приложения в свой манифест Android, и я попытался добавить network_security_config и добавил его в тег приложения вместе с тегом метаданных внутри тега приложения.

Вот мой файл network_security_config:

 <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>
 

Вот мой код для моего приложения flutter, вызывающего api:

Вот мой код для моего приложения flutter, вызывающего api:

Вот мой код API Springboot RESTful:

Вот мой код API Springboot RESTful

Комментарии:

1. Взгляните на это: developer.android.com/training/articles/security-config .

Ответ №1:

Вы должны использовать

 Uri.https
 

и не

 Uri.http
 

Комментарии:

1. Ну, это приводит к ошибке рукопожатия, которую я мог бы решить, настроив SSL, но это всего лишь тестовая среда для обучения flutter, поэтому http был бы идеальным.

2. У вас есть это в вашем Манифесте? <приложение …> … <метаданные android:имя=»io.flutter.сетевая политика» android:ресурс=»@xml/network_security_config»/> <метаданные android:имя=»io.flutter.сетевая политика» android:ресурс=»@xml/network_security_config»/></приложение>

3. flutter.dev/документы/выпуск/основные изменения/…

Ответ №2:

Я разобрался со своей проблемой! Проблема заключалась в том, что я добавлял android:usesCleartextTraffic=»true» в неправильный файл манифеста Android. Раньше у меня это было под android/app/src/profile/AndroidManifest.xml но подходящее место находится под andoird/app/src/debug/AndroidManifest.xml. Как указано в https://flutter.dev/docs/release/breaking-changes/network-policy-ios-android