Flutter — популярная кроссплатформенная среда для создания мобильных приложений. Однако, как и любое другое программное обеспечение, в процессе разработки могут возникать ошибки. Одной из таких ошибок, с которой иногда сталкиваются разработчики, является ошибка «Плохое состояние: небезопасный HTTP не разрешен». В этой записи блога мы рассмотрим причины этой ошибки и обсудим различные методы ее устранения и устранения.
Понимание ошибки:
Сообщение об ошибке «[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Необработанное исключение: Плохое состояние: небезопасный HTTP не разрешен» предполагает, что ваше приложение Flutter пытаюсь сделать запрос на небезопасный (не HTTPS) URL-адрес. Flutter по умолчанию обеспечивает безопасную связь с использованием HTTPS для обеспечения целостности данных и безопасности пользователей. Поэтому попытка выполнить небезопасные HTTP-запросы вызывает эту ошибку.
Методы устранения ошибки:
-
Метод 1. Переход на HTTPS:
Лучший вариант — перенести приложение на HTTPS. Большинство современных веб-хостов предоставляют бесплатные сертификаты SSL, что упрощает защиту вашего веб-сервера. После перехода на HTTPS обновите конечные точки API вашего приложения и убедитесь, что все сетевые запросы используют безопасный протокол. -
Метод 2. Разрешение небезопасных HTTP-запросов.
Хотя это не рекомендуется для производственных сред, вы можете разрешить небезопасные HTTP-запросы во время разработки или тестирования. Для этого добавьте следующий фрагмент кода в функциюmain()вашего приложения Flutter:import 'package:flutter/widgets.dart'; import 'package:flutter/services.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); HttpOverrides.global = MyHttpOverrides(); runApp(MyApp()); } class MyHttpOverrides extends HttpOverrides { @override HttpClient createHttpClient(SecurityContext? context) { return super.createHttpClient(context) ..badCertificateCallback = (X509Certificate cert, String host, int port) => true; } }Обратите внимание, что этот метод не рекомендуется использовать в производственных средах из соображений безопасности.
-
Метод 3. Проверка сетевых запросов.
Проверьте свою кодовую базу на наличие случаев, когда вы можете отправлять небезопасные HTTP-запросы. Убедитесь, что все URL-адреса, используемые в сетевых запросах, начинаются с «https://», а не с «http://». Кроме того, убедитесь, что все используемые вами сторонние библиотеки или зависимости также настроены на использование HTTPS. -
Метод 4. Отладка с помощью Dart DevTools:
Dart DevTools — это мощный инструмент отладки, который помогает диагностировать и устранять проблемы в приложениях Flutter. Используйте Dart DevTools для проверки сетевых запросов и выявления случаев, когда ваше приложение пытается выполнить небезопасные HTTP-запросы. Это поможет найти и устранить основную причину ошибки.
Ошибка «Неверное состояние: небезопасный HTTP не разрешен» во Flutter указывает на то, что ваше приложение пытается выполнить небезопасный HTTP-запрос. Следуя методам, описанным в этой статье, вы можете устранить и устранить эту ошибку, гарантируя, что ваше приложение соответствует методам безопасного обмена данными. Не забывайте всегда уделять приоритетное внимание безопасности данных ваших пользователей и по возможности переходить на HTTPS.