日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Android9.0 http网络请求失败问题的处理

發布時間:2025/3/12 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android9.0 http网络请求失败问题的处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

      • 處理方法(任意一種):
        • APP改用https請求
        • targetSdkVersion 降到27以下
        • 配置network-security-config(推薦)
      • 原因
      • 出錯案例

處理方法(任意一種):

APP改用https請求

這種方式是最佳方法,需要前后端協調,后端得支持https,把請求改為https。

targetSdkVersion 降到27以下

這種方法是下策,除非臨時調試或緊急處理,不建議長期使用。

配置network-security-config(推薦)

在 res 下新增一個 xml 目錄,然后創建一個名為:network_security_policy.xml 文件(文件名隨意) ,添加下面的xml內容。

<?xml version="1.0" encoding="utf-8"?> <!--Android 9.0 http請求適配--> <network-security-config><base-config cleartextTrafficPermitted="true" /> </network-security-config>

然后在AndroidManifest.xml文件的application標簽增加屬性:

android:networkSecurityConfig="@xml/network_security_policy"

如圖:

這種方法在解決第三方sdk是很合適的,同時也能彌補第一種方法中無法立刻更換為https的情況。

原因

Google表示,為保證用戶數據和設備的安全,針對下一代 Android 系統(Android P) 的應用程序,將要求默認使用加密連接,這意味著 Android P 將禁止 App 使用所有未加密的連接,因此運行 Android P 系統的安卓設備無論是接收或者發送流量,未來都不能明碼傳輸,需要使用下一代(Transport Layer Security)傳輸層安全協議,而 Android Nougat 和 Oreo 則不受影響。

出錯案例

1、用Retrofit (okhttp3及以上版本)進行http請求報錯
java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security policy

如果當前應用的請求是 htttp ,而非 https ,這樣系統就會阻止當前應用進行該請求,

為此,OkHttp3 做了檢查,所以如果使用了明文流量,默認情況下,在 Android P 版本 OkHttp3 就拋出異常:

"CLEARTEXT communication to " + host + " not permitted by network security policy

2、webview 和 HttpUrlConnection

java.io.IOException: Cleartext HTTP traffic to **** not permitted

如果 WebView 的 url 用 http 協議,同樣會出現加載失敗,無法顯示webview的內容,https 則不受影響。

總結

以上是生活随笔為你收集整理的Android9.0 http网络请求失败问题的处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。