Android---SpringBoot实现前后端数据交互

2023-11-18

Android—SpringBoot实现前后端数据交互

General 1920x1080 Venice boat city canal Italy

星光不问赶路人,时间不负有心人

这篇是针对android传数据到后台springboot,使用Xutils框架

使用Xutils框架 关于xutils的使用这是老师的博客大家可以看看

前端后端数据交互方式

前端后端数据提交格式

img

SpringBoot获取参数的几种常用注解

@PathVariable:一般我们使用URI template样式映射使用,即url/{param}这种形式,也就是一般我们使用的GET,DELETE,PUT方法会使用到的,我们可以获取URL后所跟的参数。

@RequestParam:一般我们使用该注解来获取多个参数,在()内写入需要获取参数的参数名即可,一般在PUT,POST中比较常用。

@RequestBody:该注解和@RequestParam殊途同归,我们使用该注解将所有参数转换,在代码部分在一个个取出来,也是目前我使用到最多的注解来获取参数

get请求

params传参一般用于get请求,params传参时参数会附于uri后面以问号形式展示,比如

http://localhost/login?username=xiaoming&password=123456

这种就是get请求常见格式,在地址栏输入http://localhost/login,然后选params再输入key和value,然后问号形式展现的参数就会被自动加到地址最后。

一般用于查询数据,采用明文进行传输,一般用来获取一些无关用户信息的数据,

@GetMapping 组合注解,是 @RequestMapping(method = RequestMethod.GET) 的缩写

  1. get请求,url路径传参
    get请求一般通过url传参,如:
    http://10.138.164.148:9000/get/21
    后端要获取name参数,可以使用@RequestParam注解
    后端使用@PathVariable可以接收路径参数21。

Android代码:

RequestParams requestParams = new RequestParams("http://10.138.164.148:9000/get/21");
requestParams.addQueryStringParameter("name","suke");

image-20211215183718245

SpringBoot代码:

 @GetMapping("/get/{id}")
    public void getTest(@PathVariable (name = "id") int id, @RequestParam (name = "name") String pname){
        System.out.println("id = " + id);
        System.out.println("pname = " + pname);
    }

image-20211215183740066

当请求为get请求时,使用@PathVariable或者@RequestParam获取参数值,获取路径参数。@PathVariable一般用于获取获取*url/{id}这种形式的参数;@RequestParam获取查询参数。即url?name=*这种形式

post请求

body传参一般用于post请求,body传参时需要在body里写json数组,参数不会显示在地址栏中
ps:post请求一般用来传登录时的账号密码,以json数组的形式传给后台

image-20211214151616194

后台实体对象接收

较推荐使用json格式传值

Android代码:

RequestParams requestParams = new RequestParams("http://10.138.164.148:9000/post");
        Student qifei = new Student(44, "qifei", 20);
        Gson gson = new Gson();
        String jsonStudent = gson.toJson(qifei);
        requestParams.setAsJsonContent(true);  //  设置传输格式为json
        requestParams.setBodyContent(jsonStudent);

image-20211215185345874

SpringBoot代码:

@PostMapping("/post")
    public String postTest(@RequestBody Student student){
        System.out.println(student.toString()+"========");
        return student.toString();
    }

image-20211215185557548

key-value接收

Android代码:

RequestParams requestParams = new RequestParams("http://10.138.164.148:9000/postq");
        requestParams.addBodyParameter("name","qifei");
        requestParams.addBodyParameter("age","18");

image-20211215192721400

SpringBoot代码:

 @PostMapping("/postq")
    public void postTest1(@RequestParam (name = "name") String pname , @RequestParam (name = "age") String age){
        System.out.println("pname = " + pname);
        System.out.println("age = " + age);
        return ;
    }

image-20211215192812269

map接收

Android代码:

/*
        post请求 ==> map接受 */
        RequestParams requestParams = new RequestParams("http://10.138.164.148:9000/post3");   //json对象传值
        Student qifei = new Student(44, "qifei", 20);
        Gson gson = new Gson();
        String jsonStudent = gson.toJson(qifei);
        requestParams.setAsJsonContent(true);
        requestParams.setBodyContent(jsonStudent);

image-20211215193130183

SpringBoot代码:

@PostMapping("/post3")
    public String postTest3(@RequestBody Map<String,String> mp){
        System.out.println(mp.get("name") + mp.get("age"));
        return mp.get("name")+mp.get("age");
    }

image-20211215193251618

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android---SpringBoot实现前后端数据交互 的相关文章

随机推荐

  • 嵌入式(标准IO)

    嵌入式自学第十三天 1 Linux IO进程课程目的 学习编写linux应用程序 APP 2 Linux文件的种类 常规文件 目录文件 字符文件 块文件 链接文件 相当于windows快捷方式 3 IO的概念 I input 输入设备 比如
  • 关于Python模块shelve存储的对象,改变字典的值时必须将获取的副本赋给一个临时变量的更好解决方法

    文章的关键点 将函数open的参数writeback设置为True就不需要引用一个临时变量 开始文章的叙述 如何将数据存储到文件中 如果需要的是简单的存储方案 模块shelve可替你完成大部分工作 你只需提供一个文件名即可 对于模块shel
  • Vector非线程安全

    Vector的方法加了同步锁 但对于复合操作未加锁 是非线程安全的 如经典的put if absent 线程的安全性包括线程的可见性 有序性 原子性 if vector contains element vector add element
  • Modbus 485继电器开、关、读 串口指令

    以下均为地址01时的命令 开继电器1 01 06 00 00 00 01 48 0A 关继电器1 01 06 00 00 00 00 89 CA 开继电器2 01 06 00 01 00 01 19 CA 关继电器2 01 06 00 01
  • Java NIO 的前生今世 之二 NIO Channel 小结

    Java NIO Channel 通常来说 所有的 NIO 的 I O 操作都是从 Channel 开始的 一个 channel 类似于一个 stream java Stream 和 NIO Channel 对比 我们可以在同一个 Chan
  • 高淇Struts2.0教程之视频笔记(4)

    4 struts2配置文件 struts xml 详解 4 1指定web应用默认字符集
  • java几位_JAVA 获得数字第几位的几种方法总结(转)

    JAVA获得某个数字的最后第几位是什么的方法 比如 1234567890 则获得最后第三位 则返回8 public class Test 字典 里面保存的是1 10 100 1000 直到long的最大允许位数 private static
  • Latex插入图片并引用

    插入图片主要为viso文件和excel图表 两种图片如果直接转pdf的话会有大片空白区域 不利于排版 解决办法 excel图表粘贴到viso中 后面两中图片处理方法相同 点击另存 保存格式为可移植网络图形 即png格式 保存路径为latex
  • 2023华为od机试统一考试B卷【阿里巴巴找黄金宝箱(III)】

    题目描述 贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面贴有一个数字 阿里巴巴念出一个咒语数字 查看宝箱是否存在两个不同箱子 这两个箱子上贴的数字相同 同时这两个箱子的编号之差的绝
  • 2022蓝桥杯学习——1.递归和递推

    递归 关于递归 所有的递归都可以转换成一棵递归搜索树 我们需要考虑的是枚举的顺序 例题 1 递归实现指数型枚举 题目描述 从 1 n 这 n 个整数中随机选取任意多个 输出所有可能的选择方案 输入格式 输入一个整数 n 输出格式 每行输出一
  • vue实现鼠标放上去就有提示_Vue实现鼠标经过文字显示悬浮框效果的示例代码

    需求 在所做的Vue项目中 需要在鼠标移动文字框的时候显示一些详细信息 最终实现的效果如下 鼠标经过button的时候 可以在光标附近显示出一个悬浮框 显示框里面显示时间和值的信息 鼠标移出button元素的时候 这个显示框会消失 分析 涉
  • C++编写优先队列打印任务

    打印机的打印队列中 每一个打印任务都有一个优先级 为1 9的一个整数 9的优先级最高 1的优先级最低 打印按如下方法进行 1 取出打印队列中队首的打印任务J 2 如果打印队列中存在优先级高于J的打印任务 则将J移动到打印队列的队尾 否则 打
  • 微软鼠标测试软件,第一款win8鼠标:微软Sculpt全球首测

    1Sculpt触控鼠标 带来全新感受 中关村在线键鼠频道原创 微软硬件在外设产品研发上 一直致力于以领先的科技带给用户超凡的体验 从早期的IE3 0 到越野蓝影 再到Arc Touch Touch Mouse等等 微软硬件在的每一次技术革命
  • 企业怎么选择固定资产管理系统

    资产管理 无论在企业还是在事业单位 都是管理人员重要的工作 随着计算机技术的普及 资产管理系统 已经有了相对清晰的管理流程及其配套的管理软件 资产管理系统是面向资产密集型企业的企业信息化解决方案的总称 它以提高资产管理效率 降低企业管理成本
  • VS2019 preview 卡在正在加载解决方案

    VS2019 解决方案 或者项目 卡 正在加载 的解决办法 1 关闭VS 2 去C Users
  • 微信小程序css篇----定位(position)

    昨天2017的微信公开课pro如期进行了 小程序将于2017年1月9日对个人开放 公司项目的demo版做了个大概 过程中花的时间最多的还是页面布局 所以后面将花一段时间将css的属性在小程序里过一篇 虽然小程序里面对于css支持 但没有说明
  • 使用labview 的http协议实现post和get,带解析

    1 创建一个新项目 右键点击我的电脑 新建web服务 然后就弹出web资源和启动VI 2 web资源新建一个VI HTTPMethed 1 vi 用来相应post data的数据 右键可以显示方法url HTTPMethed 1内容如下 3
  • shell脚本实现文件移动、复制等操作

    如题 在此做一记录 方便查阅 bin bash 将一个目录下的一些文件移动到另一个目录下 raw dir home liuyi evt test 可修改绝对路径 mkdir home liuyi evt bp 创建新的文件目录 for el
  • 四、spring源码循环依赖的处理之doCreateBean方法的执行流程(文字描述)

    还写了一篇 内容和这个差不多的 emm 那篇更简洁 算是半伪码形式 https blog csdn net qq 36951116 article details 100078947 其实createBean方法没做什么事 主要就是 1 调
  • Android---SpringBoot实现前后端数据交互

    Android SpringBoot实现前后端数据交互 星光不问赶路人 时间不负有心人 这篇是针对android传数据到后台springboot 使用Xutils框架 使用Xutils框架 关于xutils的使用这是老师的博客大家可以看看