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表格)

解决方式:

  • image-20220714150801366

需要按照以上方式将参数以json的形式写入.上方截图中的两个步骤都需要做

当我修改改好上面后报错信息变成了,只粘贴了一行

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8'

这个报错原因是

  • image-20220714150658002
  • 就是需要我们在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 类型时、 数据会自动进行映射不要添加任何注解。此处解释不知道正确不、欢迎指正。

posted @ 2022-07-18 22:25  哩个啷个波  阅读(4339)  评论(0编辑  收藏  举报