今天維護以前開發的一個Android客戶端程序,發版後,有用戶說自己手機安裝,無法登錄,首屏打開後(有網絡通過接口加載服務器數據並顯示的行爲),提示網絡出錯。
但是我在我自己手上的PDA設備(Android 4.4)正常,然後又去找了一臺Android設備,是Android8.0的,也正常。初步懷疑是高版本沒兼容的問題
馬上把問題丟到Chatgpt ,它給我的回答如下:
看到第二條,我就感覺是了。馬上修改客戶端請求爲https,發現就可以正常加載數據了。搜索引擎們顫抖吧,現在有問題已經優先問chatgpt而不是搜了
如果不願意搞服務器端配置https,也可以讓客戶端允許http請求,做法如下:
在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"
這樣子,這個客戶端就允許加載http請求的內容了。