📌  相关文章
📜  [错误:flutter lib ui ui_dart_state.cc(186)] 未处理的异常:错误状态:平台不允许不安全的 HTTP:http:worldtimeapi.org api timezone Asia Kolkata (1)

📅  最后修改于: 2023-12-03 15:13:12.314000             🧑  作者: Mango

错误:flutter lib ui ui_dart_state.cc(186)

这是一个Flutter程序运行时出现的错误。具体错误信息为:未处理的异常:错误状态:平台不允许不安全的 HTTP:http:worldtimeapi.org api timezone Asia Kolkata

可能的原因

该错误主要是因为程序尝试从不安全的 HTTP 网址下载数据,而你的设备或平台不允许通过 HTTP 连接传输数据。这是为了保证数据传输的安全,防止数据被窃取和篡改。

解决方案

有几种解决方法可以解决这个问题,你可以根据你的情况选择其中的一种或几种方法来解决它。

方法一:使用 HTTPS 连接

最好的解决方法是使用 HTTPS 协议连接到数据源。这是一种安全的协议,可以保证数据传输的安全性。你可以尝试使用 HTTPS 连接到相同的数据源,看看它是否可以解决这个问题。例如,在这个例子中,你可以使用以下代码:

import 'dart:convert';
import 'package:http/http.dart' as http;

Future<void> fetchTimezone() async {
  try {
    final response = await http.get(Uri.https('worldtimeapi.org', '/api/timezone/Asia/Kolkata'));
    final data = jsonDecode(response.body);
    print(data);
  } catch (error) {
    print(error);
  }
}

这里使用了 http 库来发送HTTPS请求。

方法二:修改应用程序设置

在 Flutter 中,你可以使用 flutter run --no-sound-null-safety 命令来运行你的应用程序,从而禁止应用程序使用空间安全。但这种方法并不推荐,因为它会使你的应用程序变得不安全。

方法三:启用不安全的 HTTP 连接

如果你非常确定你要使用不安全的 HTTP 连接,在 Flutter 中,你可以使用 flutter run --enable-http2 命令来启用不安全的 HTTP 连接。但这种方法不安全,不推荐使用。

结论

这是一种常见的错误,当Flutter尝试从不安全的HTTP连接下载数据时会发生。为了解决它,你可以使用HTTPS连接,修改应用程序设置或启用不安全的HTTP连接。但请记住,不安全的HTTP连接并不安全,应该尽量避免使用。