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 多对象及文件+对象同时传递
戳这里

相关推荐
一个幽默的程序员7 分钟前
Postman 如何发送 JSON 格式的 API 请求?
测试工具·json·postman
上分小子2.01 小时前
自动化测试selenium(Java版)
selenium·测试工具
一个幽默的程序员1 小时前
如何在 Postman 中发送 PUT 请求?
测试工具·postman
天才测试猿9 小时前
Python常用自动化测试框架—Pytest
自动化测试·软件测试·python·功能测试·测试工具·测试用例·pytest
xaletry88810 小时前
汽车v型推力杆总成三维5自由度性能及疲劳测试系统
测试工具
niuniu_66610 小时前
selenium简介
功能测试·selenium·测试工具
网络安全小吗喽17 小时前
靶场(十八)---小白心得&&思路分享---shenzi
linux·运维·服务器·测试工具·网络安全·靶场
满满呀17 小时前
python之selenium中的窗口切换
selenium·测试工具
土小帽软件测试19 小时前
jmeter基础08_(组件)http请求默认值
测试工具·jmeter·接口测试·软件测试学习
一个幽默的程序员20 小时前
如何选择免费国产类 Postman 软件?
测试工具·postman