1.问题描述:
今天做接口测试的时候,以为后端用POST 请求的注解时,一律使用x-www-form-urlencoded的数据格式发起post请求就行但其实不然。
2.实操:
例1:如果只使用@PostMapping 请求注解用方法上的参数接受前端传递过来的数据时,做接口测试的时候只能选择x-www-form-urlencoded的数据格式后端才能成功接受到传递的数据。
1.使用x-www-form-urlencoded数据的格式发送数据(请求成功)
下面这张图调用登录接口发起请求选择了x-www-form-urlencoded数据的格式,后端成功接受到了传入的参数成功,登录成功,返回对象响应码为200。
2.使用raw格式发送数据(请求失败)
下面这张图调用登录接口发起请求选择了raw数据的格式,服务器异常状态码500。
我们来看后端的报错信息username is null,很明显没有接受到前端的参数。
例2:如果使用@PostMapping 注解时还用上了@RequestBody注解来接受前端传递过来的数据时,做接口测试的时候只能选择的raw数据格式后端才能成功接受到传递的数据。
1. 使用raw
数据的格式发送数据(成功)
1.下面这张图调用用户新增接口,选择raw数据的格式
发起请求,请求成功,成功添加用户。
2.使用x-www-form-urlencoded数据的格式发送数据(失败)
下面这张图调用用户新增接口,选择x-www-form-urlencoded
数据的格式
发起请求,客服端错误状态码:415
3.总结:
1.使用@PostMapping注解时,接口要想成功接受到数据,需要使用x-www-form-urlencoded数据的格式发送数据。
2.使用
@PostMapping+@RequestBody注解时,接口要想成功接受到数据需要使用raw数据的格式发送数据。