报错:Required request body is missing

今天测试接口的时候报这个错,找了下原因是因为我用@ReauestBody接收参数但是前端没有传json格式的对象

我的代码:

    @RequestMapping("/delUser")
    public ResultModel delUser(@RequestBody JSONObject params) {
        log.info("进入注销用户接口");
        //校验参数
        String openid = params.getString("openid");
        if (StringUtils.isBlank(openid)) {
            return ResultModel.error(700,"非法用户");
        }
        log.info("openid为:"+openid);
        //更新用户信息
        return loginService.delUser(openid);
    }

但是报错了:Required request body is missing

原因是前端没有传数据

如果还想执意这样写可以再RequestBody加上个参数(required = false)

    @RequestMapping("/delUser")
    public ResultModel delUser(@RequestBody(required = false) JSONObject params) {
        log.info("进入注销用户接口");
        //校验参数
        String openid = params.getString("openid");
        if (StringUtils.isBlank(openid)) {
            return ResultModel.error(700,"非法用户");
        }
        log.info("openid为:"+openid);
        //更新用户信息
        return loginService.delUser(openid);
    }

这样这个参数就不是必须得,前端传不传参数都不影响

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`RuntimeException: Required request body is missing` 这个错误通常出现在HTTP请求处理中,特别是当你使用的是需要提交数据(请求体)但实际请求中没有提供请求体的情况下。在Web服务或API开发中,许多API都是基于HTTP协议的,并且可能期望客户端在POST、PUT等方法中包含一个有效的请求体,这个体通常用于携带数据或者请求的操作参数。 具体来说,这个异常可能是因为: 1. 使用了需要请求体的HTTP方法(如POST或PUT),但请求头没有设置`Content-Type`(比如默认的`application/x-www-form-urlencoded`或`application/json`),也没有发送任何数据。 2. 你正在使用支持JSON或表单数据格式的API,但请求中没有包含JSON对象或者表单数据。 3. 在使用某些库或框架,如Spring MVC或Express.js,没有正确设置或填充请求体,导致服务器无法识别请求内容。 解决这个问题的方法包括: 1. 确保你的请求包含了正确的`Content-Type`,如果是JSON,可能是`application/json`。 2. 对于POST或PUT请求,检查是否正确构造并发送了JSON数据或表单数据。 3. 如果是在使用某个库或框架,查阅其文档,看看如何正确地构建和发送请求。 相关问题: 1. 如何在Java中设置HTTP POST请求体? 2. 使用什么工具可以在浏览器开发者工具中检查HTTP请求的头部和主体? 3. 如何在Node.js中用Express处理带有请求体的HTTP请求?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值