当前位置:   article > 正文

spring boot 无法接收小程序 wx.request post请求传递的参数问题_spring boot requestbody post钉钉小程序不支持

spring boot requestbody post钉钉小程序不支持

问题描述:最近在做一个小程序,后端用的java。在使用wx.request 来传递参数的过程中发现后端不能成功接收传递的参数。

代码

小程序端代码如下

  1. wx.request({
  2. url: 'http://localhost:8080/project/phonePassword',
  3. method:"POST",
  4. data:{
  5. "phone":phone,
  6. "password":password
  7. },
  8. header: {
  9. 'content-type': 'application/json'//默认值
  10. },
  11. success (res) {
  12. console.log(res.data)
  13. }
  14. })

java控制器代码如下

  1. @PostMapping("/phone/phonePassword")
  2. @ResponseBody
  3. public BuildUser getByUserId(@RequestParam String password,@RequestParam String phone){
  4. return buildUserService.getByPhonePossword(phone,password);
  5. }

结果发现报错

Required String parameter 'possword' is not present

查阅资料发现问题所在

在http请求中content-type 来确定请求的媒体类型(格式)

1.当content-type的值为application/x-www-form-urlencoded时
浏览器的原生 <form> 表单,其中ajax也是用这种方式提交的
这种情况下可以使用@RequestParam@ModelAttribute处理,当然@RequestBody也能处理

2.当content-type的值为multipart/form-data时
表单上传文件用的这种提交方式
不能处理,使用@RequestBody注解也不能处理。

3.当content-type的值为application/json或者application/xml
这种提交方式的消息主体是一个json字符串         
只能使用@RequestBody注解来处理这种参数。

解决方式

1.第一种解决方式改变小程序wx.request请求头中的content-type类型,值改为application/x-www-form-urlencoded

  1. wx.request({
  2. url: 'http://localhost:8080/partybuild/buildUser/phone/phonePossword',
  3. method:"POST",
  4. data:{
  5. "phone":phone,
  6. "possword":possword
  7. },
  8. header: {
  9. 'content-type': 'application/x-www-form-urlencoded'
  10. },
  11. success (res) {
  12. console.log(res.data)
  13. }
  14. })

2.第二种方式 是 Controller 用@RequestBody 接收参数,小程序还是’content-type’: 'application/json’不变,

  1. @PostMapping("/phone/phonePassword")
  2. @ResponseBody
  3. public BuildUser getByUserId(@RequestBody Map<String, String> req){
  4. return buildUserService.getByPhonePossword(req.get("phone"),req.get("password"));
  5. }

原文链接http://www.jhone.top/index/index/toread.html?article_id=11

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/229683
推荐阅读
相关标签
  

闽ICP备14008679号