SpringBoot-关于RESTFUL请求提交
2017-05-31 本文已影响162人
messiGao
使用springboot框架来开发的时候,大部分还是使用restful接口。
最近在开发使用restful的时候遇到一些问题,在此分享下。
因为只是开发了后台接口,所以我前端采用的postman进行模拟提交。
postman在body里面提供了form-data,x-www-form-urlencoded,raw,binay
四种形式。关于这几种的区别资料很多,这里不详细说明。
一开始我自然选择了raw形式,直接按照json格式模拟,后台restful接口采用
@PostMapping注解接收,没有任何问题。但我切换成form-data,按照格式直接填入key-value之后,这时候报错了。Http 415 "Unsupported Media Type" error。此问题找了很久才发现无法使用@PostMapping来接收。必须写成类似如下格式:
@RequestMapping(value="/user", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)。
测试之后发现没问题,但是当我替换成PUT请求之后,发现获取的入参变成空了。这是因为可能是API只能解析GET、POST方式的表单提交。其他一些传统的MVC框架也有类似现象。这个时候就需要自己注入对PUT请求的处理。这个在springboot里面处理起来就非常方便了,直接使用注解注入即可。
@Component
public class PutFilter extends HttpPutFormContentFilter {
}