1

我正在尝试执行对本地服务器的 http 请求,但我收到以下 I / flutter (28338) 错误消息:错误状态:平台不允许不安全的 HTTP:http://mylocalip /auth/login,有人知道怎么解决吗?

注意:我也在使用模块化的颤振和 mobx

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, 1.22.0-10.0.pre.251, on Microsoft
    Windows [versão 10.0.19041.508], locale pt-BR)

[√] Android toolchain - develop for Android devices (Android
    SDK version 30.0.2)
[√] Android Studio (version 4.0)
[√] Connected device (1 available)

• No issues found!
I'm trying to make a request to a local http server, the request is a post for a login system that receives username and password by parameter

login() async {
try {
  var response = await http.post(http://mylocalip/auth/login,
      body: {'username': 'maximosdrr', 'password': '621251'});
  print(response.statusCode);
} catch (e) {
  print(e);
}
}

并且控制台上的输出如下: I/flutter (28338): Bad state: Insecure HTTP is not allowed by platform: http://mylocalip/auth/login

4

1 回答 1

1

临时解决您的问题。首先在 res/xml(我的完整路径是/Users/dolphin/source/third-party/Cruise/android/app/src/main/res/xml) 文件夹中添加一个配置:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然后在你的 AndroidManifest.xml 文件中添加这个配置:

android:networkSecurityConfig="@xml/network_security_config"

这可能允许 http 流量。但它只是用于调试,最好的方法是使用 https 流量。更多信息:如何在 Android (9) Pie 中允许所有网络连接类型 HTTP 和 HTTPS?

于 2020-10-04T13:07:53.960 回答