Android版本28使用http請求報錯not permitted by network security policy
android模擬器調試HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.xx.xxx not permitted by network security policy
問題: 由於 Android P(版本27以上) 限制了明文流量的網絡請求,非加密的流量請求都會被系統禁止掉。
如果當前應用的請求是 htttp 請求,而非 https ,這樣就會導系統禁止當前應用進行該請求
推薦的做法是服務器和本地應用都改用 https ,測試時爲了方便使用http,上線時應該都會用https才比較安全。
解決辦法:1.在 res 下新建一個 xml 目錄,然後創建一個名爲:network_security_config.xml 文件
該文件內容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
在 AndroidManifest.xml application增加配置android:networkSecurityConfig="@xml/network_security_config"
後不報錯了
2:服務器和本地應用都改用 https (推薦)
3:targetSdkVersion 降級回到 27