解决okhttp或者retrofit出现UnknownHostException的问题

首先确认你的设备能否解析该域名,可以直接ping这个域名,如果能ping通则代表设备所处的网络是没有问题的,如果不能ping通可以尝试接入阿里云或者其他云服务厂商提供的http dns服务,或者检查一下网络状况。
在排除掉以上问题以后,检查一下是否添加了网络访问权限

<uses-permission android:name="android.permission.INTERNET" />

如果网络权限也添加了,仍然出现该问题,确认是否使用的http协议而不是https协议,如果是http协议的话,需要在AndroidManifest中的application标签添加一个usesCleartextTraffic属性

 <application
        android:name=".xx.xxx"
        android:allowBackup="true"
        android:icon="@drawable/app_logo"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/ImageTranslucentTheme">
       
 </application>

当然也可以把你的targetSDK改到28以下,或者升级到https协议,从安全的角度来看升级到https协议是最好的。

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