【注解】@RequestBody——状态码400

【Java与小程序交互】
请求加上请求头:

        promise.postRequest(url, data, 2).then(res => {
            console.log(res);
        }).catch(err => {
            console.log("err", err);
        })
//请求头具体内容:
  let header = {
    "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
    token: wx.getStorageSync('token'),
    version: wx.getStorageSync('version')
  }
  if (postheader == 0) {
    header = {
      "content-type": "application/json;charset=UTF-8"
    }
  }
  if (postheader == 1) {
    header = {
      "content-type": "application/x-www-form-urlencoded;charset=UTF-8"
    }
  }
  if (postheader == 2) {
    //console.log("postheader",postheader)
    header = {
      "content-type": "application/json;charset=UTF-8",
      token: wx.getStorageSync('token'),
      version: wx.getStorageSync('version')
    }
  }
  return wxPromisify(wx.request)({
    url: app.globalData.callApiUrl + url,
    method: 'POST',
    data: Object.assign(data, dataParam),
    header: header
  })

Java代码:

    public List<HashMap<String,Object>> IndexRepairPersonnel(@RequestBody SysUserStatus sysUserStatus){
        User user = userService.get(sysUserStatus.getUserId().getId());
        List<HashMap<String,Object>> userlist = sysUserStatusService.selectRepairPersonnelPunch(user.getProvinceCode());
        return userlist;
    }

1,没有@RequestBody:报错500
2,没有promise.postRequest(url, data, 2)中的第三个参数也没有@RequestBody:报错400

【知识点】
"content-type": "application/json;charset=UTF-8"(JSON格式)
{
"key1":"value1",
"key2":"value2"
}
"content-type": "application/x-www-form-urlencoded;charset=UTF-8"(默认格式)
key1=value1
key2=value2
p.s.:content-type:multipart/form-data 上传文件用这种格式

区别@RequestParam:RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value里面的参数(以后在具体研究。。。)

posted @ 2022-03-28 13:15  ICE-CREAMMM  阅读(499)  评论(0编辑  收藏  举报