No Network Security Config specified, using platform default
后来通过查阅官网,发现Google在Android P上面禁止了明文http传输,也就是默认的是使用https而不是http。而且官方也是给出了解决方案。可以参考官方详情,我在这里简单总结一下
1. 添加安全配置文件
首先在res/xml文件夹下创建文件network_security_config.xml文件,然后添加可以信任的域名或者ip。
<?xml version="1.0" encoding="utf-8"?>example.com
或者添加默认可以使用明文传输。之后在AndroidMainfest.xml中application下添加下面属性
android:networkSecurityConfig="@xml/network_security_config"
- 降低api版本,在27或者以下都可以使用明文http传输。但是作为开发者这样是没有太大意义的。
访问自己搭建的后台
另一个项目是通过Android访问自己搭建的web服务器。同样会出现报错,通过上面的两种方法是可以解决问题的。这里还有第三种方法,那就是手动添加ssl证书
- spring boot配置ssl证书实现https访问
可以使用java自带的证书生成工具来实现,首先打开cmd终端,输入命令来产生ssl证书
keytool -list -keystore server.p12
之后会提示输入不少于六位的密码,之后还需要重复输入