0
点赞
收藏
分享

微信扫一扫

【Android】OkHttp报错:java.net.UnknownServiceException


问题

在Android 9.0手机使用OkHttp请求一个http地址,会报如下错误。

java.net.UnknownServiceException: CLEARTEXT communication to **** not permitted by network security policy

原因是Android 9.0以后,Google官方解释:

为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着
Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P
系统的安卓设备无论是接收或者发送流量,未来都不能明码传输。

三种解决办法

  • APP 改用 https 请求
  • argetSdkVersion 降到27以下更改
  • 网络安全配置

第三种方法实现

在res文件夹下创建一个xml文件夹,然后在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地址了。


举报

相关推荐

0 条评论