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<Integer> list;
}

@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();
    }
}

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;
    }

3.2 复杂类型请选择json格式

单一一个List

复制代码
@PostMapping(value = "/list")
    public String postman2(@RequestBody List<Integer> list){
        String result = list.toString();
        return result;
    }

另外,选择了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;
    }
}

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

3.4 多对象及文件+对象同时传递
戳这里

相关推荐
程序员小远12 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT101579744412 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏13 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
专业机床数据采集13 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔13 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH13 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试13 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
LT101579744413 天前
2026年开源自动化测试工具选型指南:功能与适用场景解析
测试工具·开源·自动化
大叔带刺14 天前
AutoSAR SomeIP配置开发速成_02测试工具开发
测试工具·someip