Устранение неполадок «Плохое состояние: небезопасный HTTP не разрешен» Ошибка во Flutter

Flutter — популярная кроссплатформенная среда для создания мобильных приложений. Однако, как и любое другое программное обеспечение, в процессе разработки могут возникать ошибки. Одной из таких ошибок, с которой иногда сталкиваются разработчики, является ошибка «Плохое состояние: небезопасный HTTP не разрешен». В этой записи блога мы рассмотрим причины этой ошибки и обсудим различные методы ее устранения и устранения.

Понимание ошибки:
Сообщение об ошибке «[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Необработанное исключение: Плохое состояние: небезопасный HTTP не разрешен» предполагает, что ваше приложение Flutter пытаюсь сделать запрос на небезопасный (не HTTPS) URL-адрес. Flutter по умолчанию обеспечивает безопасную связь с использованием HTTPS для обеспечения целостности данных и безопасности пользователей. Поэтому попытка выполнить небезопасные HTTP-запросы вызывает эту ошибку.

Методы устранения ошибки:

  1. Метод 1. Переход на HTTPS:
    Лучший вариант — перенести приложение на HTTPS. Большинство современных веб-хостов предоставляют бесплатные сертификаты SSL, что упрощает защиту вашего веб-сервера. После перехода на HTTPS обновите конечные точки API вашего приложения и убедитесь, что все сетевые запросы используют безопасный протокол.

  2. Метод 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. Метод 3. Проверка сетевых запросов.
    Проверьте свою кодовую базу на наличие случаев, когда вы можете отправлять небезопасные HTTP-запросы. Убедитесь, что все URL-адреса, используемые в сетевых запросах, начинаются с «https://», а не с «http://». Кроме того, убедитесь, что все используемые вами сторонние библиотеки или зависимости также настроены на использование HTTPS.

  4. Метод 4. Отладка с помощью Dart DevTools:
    Dart DevTools — это мощный инструмент отладки, который помогает диагностировать и устранять проблемы в приложениях Flutter. Используйте Dart DevTools для проверки сетевых запросов и выявления случаев, когда ваше приложение пытается выполнить небезопасные HTTP-запросы. Это поможет найти и устранить основную причину ошибки.

Ошибка «Неверное состояние: небезопасный HTTP не разрешен» во Flutter указывает на то, что ваше приложение пытается выполнить небезопасный HTTP-запрос. Следуя методам, описанным в этой статье, вы можете устранить и устранить эту ошибку, гарантируя, что ваше приложение соответствует методам безопасного обмена данными. Не забывайте всегда уделять приоритетное внимание безопасности данных ваших пользователей и по возможности переходить на HTTPS.