Android 9.0 http網絡請求踩過的坑

Android9.0以下網絡請求一切正常,換上9.0一直報一個異常 我用的網絡框架retrofit

java.net.UnknownServiceException: CLEARTEXT communication to qpi.zhenghongwy.com not permitted by network security policy

在Android P系統的設備上,如果應用使用的是非加密的明文流量的http網絡請求,則會導致該應用無法進行網絡請求,https則不會受影響,同樣地,如果應用嵌套了webview,webview也只能使用https請求。

有人認爲 Android P 上所有的 App 都需要使用 TLS 加密會降低上網體驗,事實上這是一種誤解,至於 App 對於少數舊服務器的連接如果非要使用明碼傳輸,開發者需要更改 App 的網絡安全配置以允許此類連接。

經過查閱資料和查看9.0新特性確定網絡安全傳輸問題,那麼就找解決方案

1、在res下創建一個xml文件夾,在xml下面創建network_security_config.xml

xml內容爲

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

2、在AndroidManifest.xml下的application節點下配置

android:networkSecurityConfig="@xml/network_security_config"

3、接口地址http改用https

4、搞定

5、再加一種解決辦法

application標籤下添加

android:usesCleartextTraffic="true"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章