【Android问题解决】java.io.IOException: Cleartext HTTP traffic to ....... not permitted完美解决

【Android报错】java.io.IOException: Cleartext HTTP traffic to …not permitted完美解决

【Android问题解决】java.io.IOException: Cleartext HTTP traffic to ....... not permitted完美解决_第1张图片
话不多说

上报错:

System.err: java.io.IOException: Cleartext HTTP traffic to img95.699pic.com not permitted
        at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115)
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458)
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
        at com.example.gundong.MainActivity.getURLimage(MainActivity.java:163)
        at com.example.gundong.MainActivity$6$1.run(MainActivity.java:141)
        at java.lang.Thread.run(Thread.java:764)
W/System.err: java.io.IOException: Cleartext HTTP traffic to img95.699pic.com not permitted
        at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115)

报错大致意思就是:网址的请求不被允许

为什么会出现这样的报错呢?

检查网络连接 -------> 网络正常

检查AndroidManifest.xml的网络请求配置 --------> 已配置允许
配置代码:


【报错原因】

Android 9.0是默认禁止所有http请求的,需要在代码中设置如以下代码才可以正常进行网络请求

android:usesCleartextTraffic="true"

在AndroidManifest.xml中添加,效果图:
【Android问题解决】java.io.IOException: Cleartext HTTP traffic to ....... not permitted完美解决_第2张图片
添加后再运行就不会报错了

完美解决

如果是更高的版本,以上方法不能解决,就要通过网络配置文件解决

增加network_security_config.xml文件:



    

再在AndroidManifest.xml中的application中引用该网络配置文件如下:


再运行就不会报错了

【Android问题解决】java.io.IOException: Cleartext HTTP traffic to ....... not permitted完美解决_第3张图片

你可能感兴趣的:(Android)