提示 error fetching videos:CLEARTEXT conmmunication to 192.168.0.104 not permitted by network security

你遇到的错误是:

 
  
error fetching videos: CLEARTEXT communication to 192.168.0.104 not permitted by network security policy

这个错误是由于 Android 9(Pie)及之后的版本默认不允许使用 HTTP(明文传输)协议,尤其是在应用中进行网络请求时。它要求应用必须使用 HTTPS(加密传输)来保证数据的安全性。

解决方法:

你有几种方式可以解决这个问题:

1. 允许明文 HTTP 请求

如果你的服务器是用 HTTP 提供视频资源,而你暂时不打算使用 HTTPS,可以在 Android 应用的 network_security_config 文件中显式允许明文 HTTP 请求。

步骤:
  1. res 目录下创建一个新的文件夹 xml(如果还没有的话)。
  2. xml 文件夹中创建一个文件 network_security_config.xml
  3. network_security_config.xml 中添加如下内容:
 
  

xml



    
        192.168.0.104
    

这个配置允许与 192.168.0.104 的明文(HTTP)通信。

  1. 接下来,在 AndroidManifest.xml 文件中引用这个配置:
 
  

xml



通过上述设置,你就允许了对 192.168.0.104 的明文 HTTP 请求。

2. 使用 HTTPS

更好的做法是让你的服务器支持 HTTPS。你可以通过为你的后端设置 SSL/TLS 证书(例如使用 Let's Encrypt 提供免费的 SSL 证书)来确保通信是加密的。

3. 开发调试时禁用网络安全策略(不推荐生产环境使用)

如果你只是暂时在开发环境中使用 HTTP,可以在 AndroidManifest.xml 中添加以下权限,禁用某些网络安全策略:

 
  

xml



这种方式允许整个应用使用 HTTP,但同样,这种做法不推荐在生产环境中使用,特别是处理敏感数据时,最好使用 HTTPS。


小结:

如果你不打算立即将服务器切换到 HTTPS,可以选择第一种方法,在 network_security_config.xml 中显式允许与 192.168.0.104 的明文通信。这样就能解决这个问题,而不需要为整个应用禁用网络安全策略。

你可能感兴趣的:(go+flutter全栈开发,android)