登录
首页 >  文章 >  java教程

SpringBoot @RequestBody如何接收非JSON格式字符串参数?

时间:2024-12-10 21:18:50 415浏览 收藏

怎么入门文章编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《SpringBoot @RequestBody如何接收非JSON格式字符串参数?》,涉及到,有需要的可以收藏一下

SpringBoot @RequestBody如何接收非JSON格式字符串参数?

springboot的@requestbody注解如何接收非json格式字符串参数?

当使用@requestbody注解修饰字符串参数时,如果请求不包含json格式参数,可能会报json解析错误。本文将分析原因并提供解决方案。

问题

请求中包含非json格式字符串参数,如:"90c8c36f23a94c1487851129aa47d690/90c8c36f23a94c1487851129aa47d690"。

原因

@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格式字符串参数?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>