这是【Flutter 问题系列第 27 篇】,如果觉得有用的话,欢迎关注专栏。
一:问题描述
前段时间在面试,有家公司问是否愿意做一个小的入职测试,想着多个机会多条路,就顺便做了,但项目刚开始运行,就报错了,报错信息如下图所示 其中主要关键字是
Bad state: Insecure HTTP is not allowed by platform
,翻译后是说错误的状态,因为平台不允许不安全的 HTTP 请求。
这是在获取用户信息接口中发生的错误,用到了 HTTP 请求,然后查阅了相关资料并尝试后,最终修复了这个问题,需要说明的是,我只在 Android 端进行了配置。
二:解决方案
出现这种情况,是因为 Android 9 对网络请求做了限制,不能直接访问 HTTP 域名的地址,可以通过修改项目的配置文件,允许不加密的请求也可以使用,总共就两步,接下来说下如何配置。
步骤一:
依次按照路径 android/app/src/main/AndroidManifest.xml
找到安卓的清单文件,在 application 标签中添加两个属性
步骤二:
在 android/app/src/main/res
目录下新建名为 xml 的文件夹,然后在 xml 文件夹下新建 network_security_config.xml 文件,如下图所示 network_security_config.xml 的文件内容为
重新编译项目后,报错的问题就没有了。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 Google 的 Flutter 越来越火,截止 2021年7月10日 GitHub 标星已达 124K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。 无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。