美文网首页
不允许的明文HTTP流量 java.io.IOException

不允许的明文HTTP流量 java.io.IOException

作者: 周末不加班 | 来源:发表于2020-10-14 17:37 被阅读0次

网络链接出现错误:

com.android.volley.NoConnectionError: java.io.IOException: Cleartext HTTP traffic to 10.1.1.10 not permitted

原因:

网络传输使用了未加密的明文传输。
为保证用户数据和设备的安全,Google从Android 9.0(API28)开始默认情况下禁用明文传输,无论是接收或者发送流量,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响

解决方案:

  1. APP改用https请求(纯自己的后台 推荐)这个需要后台协助,要钱,简单解决

以下为同种解决方案不同形式 需要手机厂商更新谷歌补丁 否则同样是不可使用

  1. 在清单文件application节点下 添加<application android:usesCleartextTraffic="true">
    原来默认为 true,但在 Android 9.0 中默认值改为了 false,因此将配置手动设为 true 即可解决明文传输被限制的问题

  2. 更改网络安全配置
    创建xml文件夹 新建network_security_config.xml
    在清单文件中添加

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <!--明文允许流量-->
    <base-config cleartextTrafficPermitted="true" />
    <!--明文允许流量-->
    <domain-config cleartextTrafficPermitted="true">
        <!--包括子域-->
        <domain includeSubdomains="true">http://10.1.1.100/</domain>
    </domain-config>
</network-security-config>
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
        ...
    </application>
</manifest>

网络安全请参考官方教程

https://developer.android.com/training/articles/security-config?hl=zh-cn

相关文章

网友评论

      本文标题:不允许的明文HTTP流量 java.io.IOException

      本文链接:https://www.haomeiwen.com/subject/glpwpktx.html