org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data
报错信息
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=--------------------------423557816345430760392485;charset=UTF-8' not supported
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:224)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:157)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:130)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:126)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
报错原因:
这是因为你所需要的是json的数据类型,而你传的是其它类型的值(比如:form表格)
解决方式:
需要按照以上方式将参数以json的形式写入.上方截图中的两个步骤都需要做
当我修改改好上面后报错信息变成了,只粘贴了一行
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8'
这个报错原因是
- 就是需要我们在Headers里面手动输入.
因为这里我们开发接口需要返回Json格式的报文数据,所以需要这么修改,但是还有一种情况就是当我们提交的就是form-data类型的数据时,而不是Json报文数据时,也会出现类似的错误,我们这里都详细记录下.
报错信息也是类似-这个是参考别人的.
文件上传问题org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;
最近在做一个图片上传功能、在入参 body 中同时传入文件和其它基本信息结果出现如题异常、在此记录下解决办法、以做记录。
controller 代码如下:
@RequestMapping(value = "/upload", method =RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file, @RequestBody User user)
{
// 业务处理
......
......
}
控制面板上显示:WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver -Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=--------------------------117954444450080952702590;charset=UTF-8' not supported]
解决方案:
去掉 @RequestBody 注解就行了
@RequestMapping(value = "/upload", method =RequestMethod.POST)
public String upload(@RequestParam("file") MultipartFile file, User user) {
// 业务处理
......
......
}
原因: 使用在进行图片或者文件上传时 multipart/form-data 类型时、 数据会自动进行映射不要添加任何注解。此处解释不知道正确不、欢迎指正。