安卓P網絡請求中CLEARTEXT communication not supported問題解決
OKhttp在高版本請求過程中會出現CLEARTEXT communication not supported問題。
其實這個問題非常簡單。
這個問題是由于安卓9開始,不容許未加密就進行網絡數據交互。
所以使用http的朋友,會遇到這個問題。
解決這個問題的方法很多。
第一,跟公司講,把APP請求的http改用https請求。后臺應該不會屌你。
第二,把你的targetSdkVersion 降到27以下。對這個問題在高版本的targetSdkVersion 和高版本安卓機才會出現。所以更改一下。但是不能從根本上解決問題。
第三,更改網絡安全配置。
有2種方式。
第一:
在res文件夾下創建一個xml文件夾,然后創建一個network_security_config.xml文件(名字隨便取。這里是告訴你網絡安全配置)
這個文件的內容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
????<base-config cleartextTrafficPermitted="true" />
</network-security-config>
或者是這樣:
<?xml version="1.0"?encoding="utf-8"?><network-security-config>
????<domain-config?cleartextTrafficPermitted="true">
????????<domain?includeSubdomains="true">Your URL(ex: 127.0.0.1。填寫你的URL的host)</domain>
????</domain-config></network-security-config>
然后再清單文件中添加這個配置:
android:networkSecurityConfig="@xml/network_security_config"
這里的配置就是剛才讓你創建的xml文件。這是第一種方式
第二種就是直接在清單文件添加這個屬性:
就完成了。
最后提醒一下各位,不要忘了添加權限。
<uses-permission?android:name="android.permission.INTERNET"?/>