当前位置: 首页 > news >正文

安卓前后端连接教程

1. 首先需要安装postman软件,用于测试后端接口

2. 用IEDA打开后端的工程并运行,观察controller文件夹下的文件,controller这一层是接受前端请求的。这里按照一个数据表一个文件进行分类。

3. 后端接口的类别主要有3种,根据接口函数的参数前方@的不同分别@RequestBody、@RequestParam和上传文件型。如下图所示

4. 先学会这3种不同的类型在postman中如何测试连接通信,然后再从普遍性到特殊性,在AS里面进行前后端通信。

共同的地方:不管是哪种类型的,都是用POST方法发送,并且在地址栏里填写接口的地址方式都是一样的,有2级路径,如下图所示

不同之处

类别1——Body型:以Comment中的add接口为例子

先去resources目录下的mapper目录下打开对应的Mapper.xml文件夹,这里面写的是操作数据库时的SQL语句。可以看到这里有个id为add的语句块,这是add接口收到请求后会执行的SQL语句。

在postman中,先选择Body,然后点击raw,再将格式切换为JSON,在编辑区写出JSON格式的文本,JSON文本中的键名就是SQL语句中#{}里面的变量名,键值就是你要传进去的变量值,这里一定要打开数据库看清楚对应字段的类型。如下图所示:

确认无误后点击SEND按钮,会发现IDEA运行日志中出现刚刚进行的SQL操作的结果,刷新数据库会发现该记录被添加到数据库中了,这样就成功了!(因为这是insert操作,接口函数的返回类型是void,所以postman这边不会有结果显示)

类型2——Param类型:以comment中的listByUid接口为例

这种类型非常简单,只需要看controller层就行了!在postman中先点击Params,然后在下面添加KEY,这里的KEY就是接口函数的参数,在VALUE里填入你需要传入的值。

确认无误后点击send按钮,可以看到IDEA运行日志里出现了SQL查询结果,postmna这边的结果区也显示出了JSON格式的结果,这样就成功了!(注意,这里返回的是JSON数组,后面在AS里前端获取返回值时对数组or单个元素的操作是不同的)

类型3——上传文件型:以comment的upload_img接口为例子

这种类型的接口需要看controller层和service层,请同时打开service文件夹下的impl文件夹下的对应的Service文件!下图所示是service层中找到的对应操作的函数,可见文件会被上传到后端工程文件夹下的upload文件夹下的comment_img文件夹下

打开postman,选择POST方法,地址栏输入对应的接口的路径,然后选择Body,选择form-data,在KEY这边先选择类型为File。

之后再在KEY里填入file,VALUE里选择一个你要上传的文件

确认无误后,点击send按钮,可以看到postman里收到返回的信息,code200,并且body这边有上传后的文件在服务器上的文件名,这样就成功了!

我们可以去comment_img文件夹下看看有没有刚刚上传的文件,果然是有的,hhh

5. 在android studio里写发送post请求的代码。postman的普遍性规律测试通过后,AS里使用后端接口的道理是一样的,postman里怎么发送post请求,AS也跟着学就行了!

三种类型的共同点:以下是代码模板

上图例子是按钮按下后发送一个POST请求,首先要创建一个Thread,网络请求操作较慢,所以要在子线程里操作,在主线程里发送网络请求会造成堵塞,APP可能会崩溃的。其次是网络请求的操作要放在try语句里,毕竟网络通信不一定成功的。最后需要注意的是子线程不能直接更新UI,要在子线程里操作UI,需要借助runOnUiThread

不同点

类型1——Body型:以Comment中的add接口为例子

我们知道它在postman中是这样发送post请求的

转换为AS发送请求的代码如下所示,红框中是类型1——body型发送的请求的方式。(因为这个后端接口没有返回值,所有不需要考虑获取后端的返回值)

运行一下APP点击对应的按钮发送POST试试,看到IDEA和数据库这边都有反应,成功啦!

类型2——Param型:以comment中的listByUid接口为例

在postman中是这样发送post请求给这个接口的

那么在AS中,代码如下图所示,如下图所示进行发送:

运行APP,点击对应的按钮试试,发现AS的日志里成功打印出从后端获取过来的值,成功!

类型3——上传文件型:以comment的upload_img接口为例子

在postman中是这样发送请求的

切换到AS,如下图代码所示将文件上传到后端接口上

运行APP点击相应的按钮确认一下,看看日志,文件夹里都有了,说明成功!

文件上传注意事项

1. 大文件上传比较慢,前端应该想办法控制一下,在文件上传成功前不要让用户觉得好像没在上传,于是狂点上传按钮导致上传了好几份文件,上传的过程以及上传成功后最好加一些UI上的提示。

2. 上传文件的接口只是上传文件而已,数据库里保存文件路径的字段还需要调用其他相应的接口去修改哦!

3. 小心安卓权限问题,这里打开需要上传的文件时是需要存储空间权限的!

还有这个路径只是个例子,在vlog++项目中需要用下图所示的Environment.getExternalStorageDirectory()来获取文件所在的路径

其他注意事项

1. 后端接口返回值都是JSON格式的,有的是JSON数组,有的是单个JSON元素。前端在接收后端返回过来的JSON文本后将其转换为JSON时需要小心这一点。

字符串转JSON数组后再遍历取值的方法:

字符串直接转为JSON对象进行取值的方法

2. 有时候有些操作需要调用多个接口,因为1个接口不够满足需求。

情况1:先调用接口A,接口A操作成功后才能调用接口B,有严格的先后关系

不需要创建2个子线程,在一个子线程里可以先后发送POST请求

情况2:接口A和接口B可以同时操作,没有先后关系

如下图所示,创建两个并列的线程,即可同时发送多个POST给不同的后端接口

http://www.dtcms.com/a/494502.html

相关文章:

  • linux系统编程(十③)RK3568 socket之 TCP 服务器的实现【更新客户端断开重连依旧可以收发】
  • Windows系统错误6118全面解决方案:修复此工作组的服务器列表当前无法使用
  • 衡阳网站页面设计公司昆明抖音代运营
  • 昆明网站建设是什么意思WordPress添加PHP代码
  • 前端基础——HTML练习项目:填写简历信息
  • Python实现的服务器日志监控脚本
  • Git合并冲突解决方法
  • 计算机毕业设计选题推荐:基于SpringBoot和Vue的爱心公益网站
  • 解密Anthropic的MCP Inspector:从协议调试到AI应用开发的全栈架构之旅
  • 数据结构——二十一、哈夫曼树(王道408)
  • Amazon ElastiCache 全解析:打造高性能的智能缓存架构
  • Set数据结构【ES6】
  • 【算法与数据结构】图的遍历与生成树实战:从顶点3出发,DFS/BFS生成树完整代码+流程拆解
  • AI游戏素材创作全攻略
  • 杭州网站app开发公司大连市网站制作电话
  • C标准库--错误信息<errno.h>
  • SpringCloud 获取Feign请求的真实IP地址
  • 目标检测算法在家禽养殖领域中的应用
  • MUI组件库与主题系统全面指南
  • 用 PyTorch 搭建 CIFAR10 线性分类器:从数据加载到模型推理全流程解析
  • 什么是机械设备制造ERP?哲霖软件如何助力企业实现降本增效?
  • 【小白笔记】关于 Python 类、初始化以及 PyTorch 数据处理的问题
  • HTTPS 内容抓取实战 能抓到什么、怎么抓、不可解密时如何定位(面向开发与 iOS 真机排查)
  • Gartner发布数据安全态势管理市场指南:将功能扩展到AI的特定数据安全保护是DSPM发展方向
  • 建站系统的应用场景一条龙搭建网站
  • 公司网站自己做的网站怎么被搜录
  • item_video:获得淘宝商品视频 API 接口实战演示说明
  • appium学习
  • [Linux]学习笔记系列 -- [kernel][irq]softirq
  • 家庭相册私有化:Immich+cpolar构建你的数字记忆堡垒