Android版本28用http请求CLEARTEXT communication to www.xxxxx.com not permitted by network security policy

淡淡的烟草味﹌ 2023-06-06 03:37 44阅读 0赞

Android版本28报错:CLEARTEXT communication to www.xxxx.com not permitted by network security policy

2019-10-09 17:37:35.394 18048-18048/com.aax.exchange E/ProgressObserver____: onError:
java.net.UnknownServiceException: CLEARTEXT communication to 52.76.xx.xxx not permitted by network security policy

问题: 由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求

推荐的做法是服务器和本地应用都改用 https ,测试时为了方便使用http,上线时应该都会用https才比较安全。

解决办法:1.在 res 下新建一个 xml 目录,然后创建一个名为:network_security_config.xml 文件 ,该文件内容如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNzIxMzIw_size_16_color_FFFFFF_t_70

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <network-security-config>
  3. <base-config cleartextTrafficPermitted="true" />
  4. </network-security-config>

在 AndroidManifest.xml Application增加配置

android:networkSecurityConfig=”@xml/network_security_config”

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNzIxMzIw_size_16_color_FFFFFF_t_70 1

后就可以正常使用了。

建议:服务器和本地应用都改用 https (推荐)

  1. targetSdkVersion 降级回到 27

书到用时方恨少,纸上得来终觉浅。共勉

发表评论

表情:
评论列表 (有 0 条评论,44人围观)

还没有评论,来说两句吧...

相关阅读