当前位置: 首页 > news >正文

【SpringBoot】 解决报错Content type ‘multipartform-data; boundary=...; charset=UTF-8‘ not supported

目录

一、报错Content type ‘multipart/form-data; boundary=…; charset=UTF-8’ not supported

报错原因

补充知识

@RequestParam

@RequestBody

解决方法


一、报错Content type ‘multipart/form-data; boundary=…; charset=UTF-8’ not supported

报错原因

我在使用postman进行测试传参数时,用的是form-data,在form-data里输入参数的键值对。

而form-data和x-www-form-urlencoded不可以用@RequestBody,可以用@RequestParam。

补充知识

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。@RequestParam 和 @RequestBody 是用于处理HTTP请求的两个常用注解,它们分别用于处理查询参数和请求体中的数据。

在POST请求@PostMapping中,可以使用@RequestBody和@RequestParam。

@RequestParam

@RequestParam注解用来接收请求url后面的参数,或者Content-Type为multipart/form-data、application/x-www-form-urlencoded时的http body数据。

例如,如果你有一个URL为http://example.com/api/usersname=John,你可以使用@RequestParam来获取name参数的值。这通常用于获取简单的键值对数据。

@PostMapping("/users") public String printHello(@RequestParam String name) { return "Hello, " + name; }

此时因为是使用@RequestParam封装的,所以当使用postman进行测试传参数时,需要用form-data传递参数。

@RequestBody

@RequestBody注解告诉Spring MVC将请求体(例如JSON或XML格式的数据)绑定到String类型的参数data上。这意味着方法可以直接操作请求体中的数据。

如果你要处理的是一个复杂的对象,或者你希望直接将请求体映射到一个Java对象上,你应该使用@RequestBody。

例如,如果你发送一个JSON格式的数据到服务器,可以创建一个对应的Java类,并使用@RequestBody来将JSON数据映射到这个类的对象上。这通常用于处理POST或PUT请求,其中请求体包含需要处理的数据。

@PostMapping("/users") public String printUser(@RequestBody User user) { return "User's name is " + user.getName(); } class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

代码中的@RequestBody User user表示@RequestBody注解告诉Spring MVC将请求体(例如JSON格式的字符串)转换为User对象,并将其作为参数传递给registerUser方法。

此时因为是使用@RequestBody封装的,所以当使用postman进行测试传参数时,需要用raw,并选择json传递参数。

总的来说,@RequestParam注解用于获取简单的键值对数据,而@RequestBody注解用于将请求体映射到复杂的数据对象。

解决方法

将@RequestBody注解改为@RequestParam注解就可以了。

http://www.jsqmd.com/news/453984/

相关文章:

  • 微电网二次控制,下垂控制,具有DOS攻击的周期微电网二次控制,在电压频率恢复到标称值的同时,实...
  • 2026年最新网易企业邮箱联系电话快速查询指南与购买价格详解 - 品牌2026
  • PAT 乙级 1101
  • 收藏备用|35岁不是危机!写10年CRUD没竞争力?程序员靠AI破局指南
  • 【AI数字人系列】三、数字人——定义数字世界中的你
  • 【递归、搜索与回溯】专题(四):回溯算法综合大练兵(上)—— 子集、排列与组合的进阶
  • 跨境卖家如何应对平台对重复铺货的治理升级
  • WordPress 中的Alt文本与图像标题区别
  • 2026年度社交脱单辅助与高情商聊天工具深度测评:谁才是真正的社交解药?
  • 【C/C++】无锁SPSC环形队列
  • JVM中的垃圾回收机制(速记版)
  • VMware虚拟机的安装
  • 毕设程序javaKTV点歌系统 基于SpringBoot的在线音乐点播与管理系统 智能化歌厅曲目服务平台的设计与实现
  • Nexpose 8.38.0 for Linux Windows 发布 - 漏洞扫描
  • 电力系统优化运行与编程:电网规划、负荷预测及潮流计算的Matlab代码模型复现
  • 让预测模型自己进化:BES-SVM黑科技实战
  • AI视频三巨头:一场关于未来想象力的终极PK
  • 瑞祥卡余额怎么提现到支付宝,高效变现指南 - 淘淘收小程序
  • 【C++初阶】:(3)C++基础类和对象(中)
  • 《从零开始的java从入门到入土的学习生活——JavaWeb前端篇》Chapter16——JavaWeb前端篇学习记录——HTML、CSS、盒子模型、flex弹性布局、表单标签
  • 毕设程序javaweb的计算机课程在线学习平台 基于Java Web的计算机技术在线教学与实训平台 计算机专业网络教育及技能测评系统
  • TechWiz LCD 1D应用:高延迟膜(彩虹mura仿真)
  • 企业策略路由(PBR)实战:原理、场景与故障排查(多出口必看)
  • 跨境卖家如何建立供应商考核指标提升稳定性
  • 2026年 喷雾干燥机厂家推荐排行榜:高速离心、气流喷雾、锂电池专用等十大机型核心优势与选购指南 - 品牌企业推荐师(官方)
  • Dify 实战系列(4):实现新闻内容概要生成
  • GLM-4.5 vs GLM-4.7 vs GLM-5 全方位技术演进对比
  • 如何选择优质品牌设计公司
  • 选购费氏粒度仪的关键指标:不仅仅是看测量范围 - 品牌推荐大师1
  • 数据同步备份软件:数字化时代的“双保险”策略