
springboot的@requestbody注解如何接收非json格式字符串参数?
当使用@requestbody注解修饰字符串参数时,如果请求不包含json格式参数,可能会报json解析错误。本文将分析原因并提供解决方案。
问题
请求中包含非json格式字符串参数,如:"90c8c36f23a94c1487851129aa47d690/90c8c36f23a94c1487851129aa47d690"。
原因
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30
@requestbody注解隐含定义了content-type为"application/json",因此spring boot期望请求体为json格式。当请求中不包含json格式参数时,就会尝试解析非json字符串为json,从而引发错误。
解决方案
修改请求头的content-type,使其为"text/plain"。这样spring boot就不会尝试将请求体解析为json,而是直接将非json字符串作为参数传递给控制器的@requestbody方法。
修改后代码示例:
@PostMapping(value = "/SendNews")
public String sendContent(HttpServletRequest request,@RequestBody(required = false) String lstMsgId) {
request.setCharacterEncoding("UTF-8");
BufferedReader reader = request.getReader();
lstMsgId = reader.readLine();
System.out.println(lstMsgId);
return lstMsgId;
}以上就是SpringBoot @RequestBody如何接收非JSON格式字符串参数?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号