【Android】HTTP连接服务器笔记(一)

正文索引 [隐藏]

这两天我在研究Android怎么连接数据库,后来被老师说APP不能直接访问数据库的,会有很多隐患,应该先通过HTTP与服务器进行交互,然后服务器再访问数据库,我在做完一个登录注册的小程序的时候,遇到个小问题,是个Android联网的报错问题,报错内容嘛,如下图所示
ERROR00
内容提示的很明确,不允许HTTP进行明文传输.为什么会这样呢
为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。
因此在Android P 使用HttpUrlConnection进行http请求会出现以下异常
W/System.err: java.io.IOException: Cleartext HTTP traffic to **** not permitted
使用OKHttp请求则出现
所有我们该怎么解决呢?非常简单,仅需两步,5行代码解决

一、方法一

1. 在Android视图下的res新建xml文件夹,在里面创建一个xml文件,代码如下

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

2. 去AndroidManifest.xml里面添加一行代码,代码如下
<application
android:networkSecurityConfig="@xml/network_security_config"

ANDROIDHTTPERROR01
这也是我遇到的一个小坑,小小的记录一下

二、方法二

直接在AndroidManifest.xml文件下面添加

android:usesCleartextTraffic="true"

这样就行了,非常的简单

blank