前后端交互,对不同数据类型的传输详解

1、使用的相关技术

1.web后端使用springboot               
2.前端使用vue+axios
3.使用apifox进行测试

2、使用apifox对前后端传输的数据进行模拟

情况一、apifox使用get请求向后端发送数据

模拟的场景一如下

apifox中数据的填写如下:
在这里插入图片描述
后端的代码如下:

@GetMapping("/SetStudent")
    public String setStudent(
            @RequestParam("name") String name,//接受的参数使用@RequestParam注解标识
            @RequestParam("age") int age,
            @RequestParam("school") String school
    ){
        System.out.println("姓名:"+name+",年龄:"+age+",学校:"+school);
        return "设置成功";
    }

实例的结果如下:

在这里插入图片描述
后端代码也可以如下所示:

@GetMapping("/SetStudent1")
    public String setStudent1(
            StudentBoc studentBoc //这是一个对象
    ){

        System.out.println("姓名:"+studentBoc.getName()+",年龄:"+studentBoc.getAge()+",学校:"+studentBoc.getSchool());
        return "设置成功";
    }
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class StudentBoc {
    private String name;
    private int age;
    private String school;
}

实验的结果如上图一致。

模拟场景二如下

我们可以在请求路径后面接上{}来传递参数,其后端代码如下:

@GetMapping(value = "/getStudent/{id}/{name}/{school}")  //例如请求路径http://localhost:8000/getStudent/1/李四/剑桥大学
    public Object exec(
            @PathVariable("id") String id,  //后端使用@PathVariable注解来接受数据
            @PathVariable("name") String name,
            @PathVariable("school") String school
    ){
        System.out.println("id = "+id+"name = "+name+"school = "+school);
        return 1;
    }

apifox的请求:
在这里插入图片描述

情况二、apifox使用Post请求向后端发送数据

1、使用json格式传输数据

前后端使用Post请求传送一个对象
在这里插入图片描述

@PostMapping("/PostSetStudent")
    public String PostSetStudent(
            @RequestBody StudentBoc studentBoc   //后端使用@RequestBody注解获取对象
    ){

        System.out.println("姓名:"+studentBoc.getName()+",年龄:"+studentBoc.getAge()+",学校:"+studentBoc.getSchool());
        return "设置成功";
    }

前后端使用Post请求传送一个List集合
在这里插入图片描述

@PostMapping("/PostSetStudent1")
    public String PostSetStudent1(
            @RequestBody List<StudentBoc> list
    ){

        list.forEach((stu)-> System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge()+",学校:"+stu.getSchool()));
        return "设置成功";
    }

前后端使用Map集合来传递数据
在这里插入图片描述

@PostMapping("/getMap")
    public String getMap(
            @RequestBody Map<String,Object> map
    ){
        map.forEach((key,value)->{
            System.out.println(key+":"+value);
        });

        return "true";
    }

在这里插入图片描述

2、使用-www-form-urlencoded格式传输数据

在这里插入图片描述

@PostMapping("/PostSetStudent2")
    public String PostSetStudent2(
            String name,
            int age,
            String school
    ){
        System.out.println("姓名:"+name+",年龄:"+age+",学校:"+school);
        return "设置成功";
    }

3、使用form-data格式传输数据

1.使用form-data传输数据

在这里插入图片描述

@PostMapping("/PostSetStudent3")
    public String PostSetStudent3(
            String name,
            int age,
            String school
    ){
        System.out.println("姓名:"+name+",年龄:"+age+",学校:"+school);
        return "设置成功";
    }
2、使用form-data传输文件

后端的书写:

导入需要依赖的jar包

<dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
</dependency>

在这里插入图片描述

@PostMapping("/LoadFile")
    public String LoadFile(
            @RequestParam("file") MultipartFile file  //后端使用MultipartFile接受文件类型
    ){
        String tr1= null;//获取文件的路径
        try {
            tr1 = ResourceUtils.getURL("load").getPath();  //获取项目中的load文件夹的相对路径
            file.transferTo(new File(tr1+file.getOriginalFilename()));  //将文件复制到改路径下,
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "传输成功";
    }

在这里插入图片描述

如果各位大神还有其他的补充,欢迎在评论区留言.😊😊😊😊😊😊

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
孙鑫vc是一种特殊的混合编程语言,它结合了C语言和Verilog语言的特点。在深入详解孙鑫vc代码之前,我们先了解一下它的一些特性。 首先,孙鑫vc具有高度的可定制性。用户可以根据自己的需求选择C语言和Verilog语言中的特性来编写代码。这种灵活性使得孙鑫vc可以适用于不同的应用领域。 其次,孙鑫vc支持并行计算。它提供了一种简单而有效的方式来利用硬件资源进行并行计算,提高程序的执行效率。 另外,孙鑫vc还具有强大的调试功能。它能够在运行时对代码进行监控和调试,帮助开发者快速定位问题并进行修复。 深入详解孙鑫vc代码包括以下几个方面: 首先,我们可以从代码的结构和组织方式入手。孙鑫vc代码一般由多个模块组成,每个模块包含了各自的功能和接口。 其次,我们需要了解代码中使用的变量和数据类型。在孙鑫vc中,可以使用C语言和Verilog语言中的数据类型,如整型、浮点型等。了解这些数据类型的使用方法和限制对理解代码非常重要。 然后,我们需要分析代码中的控制流和算法。这包括了代码中的条件语句、循环语句等,以及算法的实现细节。通过对控制流和算法的分析,我们可以更好地理解代码的逻辑和实现原理。 最后,我们还需要关注代码中的接口和数据传输方式。在孙鑫vc中,模块之间通过接口进行数据的传递和交互。了解接口的定义和使用方式对于理解代码的功能和模块之间的关系非常重要。 综上所述,深入详解孙鑫vc代码需要从代码的结构和组织方式、变量和数据类型、控制流和算法、接口和数据传输方式等多个方面进行分析和理解。通过对这些方面的研究,我们可以更好地理解孙鑫vc代码,并且能够对代码进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值