解决SpringBoot中@RequestBody不能和Multipart同时传递的问题

这篇具有很好参考价值的文章主要介绍了解决SpringBoot中@RequestBody不能和Multipart同时传递的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

今天在做文件上传的时候,遇到了这么一个错误日志:

multipartfile 和@requestbody 可以同时吗,Java,报错,SpringBoot,spring boot,java,后端

Resolved[org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘multipart/form-data;boundary=--------------------------771899451541318130280588;charset=UTF-8’ not supported]

multipartfile 和@requestbody 可以同时吗,Java,报错,SpringBoot,spring boot,java,后端

分析问题

从日志中可以发现,好像是因为@RequestBody不能和MultipartFile一起使用。

这是因为我需要的是json的数据类型,但是传了json数据的同时也传了其它类型的值,很明显我就是又传了MultipartFile文件类型参数。

后来经过我大量搜索和测试,这里基本上是敲定了下面的结论:

@RequestBody不能和Multipart同时用

解决问题

如果想用解决这种问题,我目前想到的办法就是不使用@RequestBody和Multipart一起操作,既然需要的是json-body的格式,那么我们就可以反其道而行之,使用form-data的格式

需要和前端约定好方式,最好不要完全自己定义!

简单调整下代码:

multipartfile 和@requestbody 可以同时吗,Java,报错,SpringBoot,spring boot,java,后端

multipartfile 和@requestbody 可以同时吗,Java,报错,SpringBoot,spring boot,java,后端

重启服务,这下就要改下传参方式了:

可以发现,问题解决。

multipartfile 和@requestbody 可以同时吗,Java,报错,SpringBoot,spring boot,java,后端

总结

虽然问题解决了。但是不太符合我的初衷,我的初衷还是希望使用@RequestBody进行传递参数而不是改变已有的方式

碍于时间问题,先把这个问题问题放一放,后面我会继续尝试,如果有新的突破,再回来更新

虽然这种方式不是特别的友好,但是也是可以解决问题的。

希望可以帮助到您!文章来源地址https://www.toymoban.com/news/detail-824693.html

到了这里,关于解决SpringBoot中@RequestBody不能和Multipart同时传递的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • @RequestMapping和@FeginClient注解不能同时使用的问题

    在新版本SpringCloud中,增加了契约验证,当一个类上同时使用@RequestMapping 和 @FeignClient 注解时,会抛出此异常信息:java.lang.IllegalArgumentException: @RequestMapping annotation not allowed on @FeignClient interfaces 将类上的@RequestMapping注解删掉,将路径更改到每个方法的路径上即可,然后使用@

    2024年02月03日
    浏览(24)
  • IntelliJ IDEA创建springboot项目时不能选择java8的问题解决方案

    最近博主也有创建springboot项目,发现了IntelliJ IDEA在通过Spring Initilizer初始化项目的时候已经没有java8版本的选项了。 基于这个问题,有了这篇文章的分享,希望能够帮助大家克服这个困难。 如图,现在创建springboot项目的时候,java版本只有17和21两个选项,刚好今天晚上有刷

    2024年02月04日
    浏览(65)
  • 【使用multipart/form-data方式传递MultipartFile参数,实现服务间文件的传递】

    目录 一、代码实现 二、MultipartFile工具类 三、HttpClient使用 四、参考链接 一、代码实现 1、A服务接收前端上传文件并发送至B服务 引入依赖 使用MultipartFile接收前端文件 调取第三方接口,发送 MultipartFile 文件 2、B服务接收文件 二、MultipartFile工具类 简介:MultipartFile是SpringMV

    2024年02月12日
    浏览(34)
  • H3C路由器不能传递的故障如何解决

    在使用路由器的过程中,难免会遇到各种各样的故障,本文主要以H3C路由器为例,为大家分析在路由组网环境中,上游不能被下游学习到故障的原因和解决步骤,相信对大家一定有所帮助。 一、组网环境 组播数据通过二层转发到华为A,华为A上用VLANIF口终结该组播源的VLAN信

    2024年02月05日
    浏览(24)
  • @RequestBody接收不到前端传递过来的json数据

    我刚开始只是写@RequestBody ParkingRecord parkingRecord 一直获取的都是null, 直到用了Map标签才终于获取到参数了 获取到map的key,就可以获取值了 有人说是前后端参数名称不一致:在实体类的属性上加一个注解 然而这个没有解决我的问题 也有人说是因为lombok的问题,自己用idea的快捷

    2024年02月12日
    浏览(41)
  • 关于postman传递两个参数@RequestBody注解只能有一个!

    1.一个bean一个集合,集合前面必须加注解  postman的传参写法  ========================================================================= 2.一个bean和一个数组,数组前面是不用加注解的也可以接收的上 postman传参    

    2024年02月11日
    浏览(24)
  • @PathVariable、@PathParam、@RequestBody接收axios传递的请求参数;后端接收前端传递过来的参数

    目录 一、前言 :Content-Type 类型    (1)、 application/x-www-form-urlencoded 类型 (2)、application/json 类型 二、@PathVariable 二、@PathParam  三、@RequestBody  四、后端发送数据给前端 五、注意事项         请求参数以key-value的形式传输         请求参数以JOSN串的形式传输         ax

    2024年01月18日
    浏览(35)
  • gin自定义中间件解决requestBody不可重复读问题

    先直接上代码 注意,上面的中间件,需要在第一个执行。 在gin中,context.Request.Body 是一个io.ReadCloser的接口,如下图 查看io.ReadCloser接口定义 我们发现io.ReaderCloser接口的本质就是 Read(p []byte) (n int, err error) 和 Close() error 的组合。 所以我们只需要自己编写实现 Read(p []byte) (n in

    2024年02月01日
    浏览(69)
  • @RequestBody注解依赖问题,导致传入的body数据为空(已解决)

    当项目引入swagger以后要注意 @RequestBody 这个注解 有两个 第一:  io.swagger.v3.oas.annotations.parameters.RequestBody 这个是swagger的依赖,当引入这个注解后在postman测试传入json数据后会接受不到参数,让传入的参数都为空,但是在swagger里面可以映射到参数 第二: org.springframework.web.bi

    2024年02月06日
    浏览(28)
  • 前端传递对象参数,以及后端接受参数 @PathVariable @RequestParam @RequestBody 注解的使用

    太久没写前后端传递参数了,总是格式对不上号 提示:以下是本篇文章正文内容,下面案例可供参考 拼接在 url 地址中的 后端 前端 api 调用请求 拼接在 url 地址后面的 后端 前端 api 调用请求 放在请求头当中 后端 前端 api 调用请求 前端传递对象,后端接收对象 放在请求体中的

    2023年04月26日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包