1. 程式人生 > >Android 9 Pie:http及https的網路連線問題

Android 9 Pie:http及https的網路連線問題

最近在將應用執行在Android 9裝置上時,發現http網路請求沒有任何的響應。

預設情況下啟用網路傳輸層安全協議 (TLS)

如果您的應用以 Android 9 或更高版本為目標平臺,則預設情況下 isCleartextTrafficPermitted() 函式返回 false。 如果您的應用需要為特定域名啟用明文,您必須在應用的網路安全性配置中針對這些域名將 cleartextTrafficPermitted 顯式設定為 true

第一步:在清單檔案AndroidManifest.xml的application標籤裡面設定networkSecurityConfig屬性如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">
		 <!-- ... -->
    </application>
</manifest>

第二步:在資原始檔夾res/xml下面建立network_security_config.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>