• Postman中几个body请求格式区别及使用说明


    参阅:https://blog.csdn.net/qq_41063141/article/details/101505956,在此基础上添加代码使用说明

    一、Params与Body
    二者区别在于请求参数在http协议中位置不一样。
    Params 它会将参数放入url中以?区分以&拼接
    Body则是将请求参数放在请求体中
    在这里插入图片描述
    二、body中不同格式
    2.1 multipart/form-data
    key - value 格式输入,主要特点是可以上传文件

    注意:使用时后端代码不能有@RequestBody,否则会出错

    2.2 application/x-www-from-urlencoded
    同样是key - value 格式输入,但不支持文件传输,与form-data区别在于http请求body格式不太一样,另外就是不可以设置content -type,而form-data是可以设置每个value的content -type
    在这里插入图片描述
    在这里插入图片描述
    注意:使用时后端代码不能有@RequestBody,否则会出错

    2.3 raw
    选择text,则请求头是: text/plain
    选择javascript,则请求头是: application/javascript
    选择json,则请求头是: application/json (如果想以json格式传参,就用raw+json就行了)
    选择html,则请求头是: text/html
    选择application/xml,则请求头是: application/xml
    以常用的json为例:
    在这里插入图片描述
    注意:使用时后端代码必须有@RequestBody,否则会报错。

    @Data
    public class Child {
        private String name;
        private Integer age;
        private List list;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    @RequestMapping("/postman")
    @RestController
    public class PostmanParam {
        @PostMapping(value = "/listInObj")
        public String postman1(@RequestBody Child child){
            String result = child.getName() + child.getAge() + child.getList().toString();
            return result;
        }
    
        @PostMapping(value = "/bodystring")
        public String postman(Child obj){
            return obj.toString();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2.4 binary
    相当于Content-Type:application/octet-stream,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件

    三、使用选择
    最常用的还是json和form-data,form-data主要用于文件操作,以及文件+对象的时候使用

    3.1 简单类型参数
    form-data与x-www-from-urlencoded都可以,直接表单填写key-value,字段名一致即可

    @PostMapping(value = "/string")
        public String postman(String name, Integer age){
            String result = name + age;
            return result;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    3.2 复杂类型请选择json格式
    单一一个List

    @PostMapping(value = "/list")
        public String postman2(@RequestBody List list){
            String result = list.toString();
            return result;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    另外,选择了json后端就只能对应一个@RequestBody,也即是只能接收一个对象,当然这一个对象中可以包含多个子对象,,,
    所以不要想着如何同时传两个json对象过去,,,,

    另外如果真的需要同时传两个单独对象,后端请使用@RequestPart,具体操作见页末

    3.3 文件上传
    使用org.springframework.web.multipart.MultipartFile接收文件

    @RestController
    @RequestMapping("/file")
    public class AController {
        @PostMapping("/upload")
        public String uploadfile(MultipartFile multipartFile,String data) throws IOException {
            String s = multipartFile.getOriginalFilename() + data;
            return s;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注意KEY需要与java方法中参数名一致,否则接收不到

    在这里插入图片描述
    3.4 多对象及文件+对象同时传递
    戳这里

  • 相关阅读:
    10分钟讲清int 和 Integer 的区别
    【java_wxid项目】【第十一章】【MongoDB集成】
    全面了解 360 评估
    复制东方甄选?顺丰再战直播电商
    「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)
    代码随想录第五十天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV
    Linux c编程之UDP通信
    基于java的企业信息网站发系统
    不重启Docker能添加自签SSL证书镜像仓库吗?
    基于JavaWeb+SSM+购物系统微信小程序的设计和实现
  • 原文地址:https://blog.csdn.net/weixin_44161385/article/details/133995050