微信小程序的 post请求无法获取data参数,一切都是Content-Type问题,之前分析的确实有点错误,Content-Type为‘application/json’时,后端需要用@RequestBody ,Content-Type为‘application/x-www-form-urlencoded’或者‘multipart/form-data’时可以用不加注解或者@RequestParam

解决方案

java后台

方案一与方案二唯一不同之处就是@RequestBody注解的参数类型不同。没错,就是用@RequestBody来获取微信小程序 wx.request中data参数。

方案一:参数为自定义类

该方式主要可用于前端传递自定义对象参数时

@ResponseBody@RequestMapping("testPost")public String testPost(HttpServletRequest request, HttpServletResponse response, @RequestBody User user){response.setHeader("Access-Control-Allow-Origin", "*");System.out.println("uid:"+user.getUid()+" uname:"+user.getUname());JSONObject js = new JSONObject(j);return js.toString();}

方案二:参数为MAP

该方法可以自定义前面的传参,原本是想找个能直接传递int、String这种的,最后无奈放弃选用这种了

@ResponseBody@RequestMapping("testPost")public String testPost(HttpServletRequest request, HttpServletResponse response, @RequestBody Map<String, Object> params){response.setHeader("Access-Control-Allow-Origin", "*");JSONObject json = new JSONObject(params);System.out.println("uid:"+json.get("uid")+" uname:"+json.get("uname"));return json.toString();}

小程序端

 wx.request({url: 'action地址',data:  {'uid':1,'uname':"哈哈"},method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT// header: {}, // 设置请求的 headersuccess: function(res){// successconsole.log("toRed success:"+res.data.uid+' '+res.data.uname)},fail: function(res) {// failconsole.log("toRed fail:"+res);},complete: function(res) {// completeconsole.log("toRed complete:"+res);}})

什么?head怎么没了?data数据转换怎么没了?因为那些都不需要,不论换不换head,最后微信请求时都是'Content-Type': 'application/json',不信的话你可以去开发者工具那看看

解决历程

在网上寻找解决过程时,看到好多说要将head中的'Content-Type': 'application/json'改为"Content-Type": "application/x-www-form-urlencoded",也有说即使改成上面格式也依旧获取不到data的,然后又将datay由Json改为“uid=1&uname=哈哈”类似字符串,同时字符串要经过encodeURIComponent转码,并给出相应转码util的。然而以上这些都没说后台是什么环境,自然也没找到基于ssm的java后台的相关解决方案了。 偶然转换了下思路,同样的代码为何在普通的html中可以使用,在小程序里就报空指针异常(由于参数中包含int类型)了呢。

微信小程序中的post请求参数是在request payload中,如图:

经过大量搜索筛选后,@RequestBody这个注解项进入到视野。

@RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。 POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。

微信小程序 java服务端下的post请求相关推荐

  1. 小程序PHP CGI,微信小程序php服务端nginx配置

    微信小程序php服务端nginx配置 微信小程序server端如果选择自己部署的话,可以选择java或者php的,为了省事我选择了php的,腾讯是用CodeIgniter框架做的demo,由于CI框架 ...

  2. 浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)

    浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) 参考文章: (1)浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) (2)https://www.cnblogs.com/ ...

  3. 微信小程序java服务_微信小程序访问webService(Java)

    在前台UI确认后,终于进入到后台服务的搭建及实现中.所及而来的问题就出现了,为了提高后台程序的可用性.设计初期决定,通过搭建java WebService实现.准备工作还是比较充分的,创建WebSer ...

  4. 微信小程序中开发环境下的POST请求

    写在前面 不得不说,开发环境下,微信小程序要是在发起网络请求的话,遇到的坑也是有的.尽管,微信提供了十分便捷的API 供开发者调用.今天在小程序中写了一个表单,需要提交到服务器上,于是发起了一个 PO ...

  5. 10分钟上线 - 利用函数计算构建微信小程序的Server端

    摘要: 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播. 当 ...

  6. 口令红包-利用函数计算构建微信小程序的server端

    摘要: 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播. 当 ...

  7. 利用Serverless构建微信小程序的Server端

    前言 这篇文章适合所有的想微信小程序开发新手.老鸟以及想准备学习开发微信小程序的程序猿.本文以开发一个类似"语音口令红包"小程序为例,向您讲解如何使用阿里云函数计算快速构建微信小程 ...

  8. 微信小程序商城服务器搭建,基于微信小程序商城毕业设计(小程序客户端+服务端Node.js源码)毕业论文+运行说明...

    微信小程序商城毕业设计(微信小程序客户端毕业设计) 摘  要 购物商城系统是保证以购物商城为基础的网上交易实现的体系.市场交易是由参与交易双方在平等.自由.互利的基础上进行的基于价值的交换.网上交易同 ...

  9. java家政后台代码下载_微信小程序家政服务预约系统毕业论文+前台源码+后台(JavaSSM)源码及Mysql数据库...

    摘  要 O2O模式能够充分的利用网站创立企业在O2O模式中的竞争优势,基于O2O模式的这一特点,本次毕业设计开发了微信小程序家政服务预约系统.该家政服务预约系统发挥了网络优势,采用O2O模式营销手段 ...

最新文章

  1. c++list支持索引吗_还在为不懂Python切片操作及原理而苦恼吗?漫画帮你立马理解掌握...
  2. 『Numpy』np.ravel()和np.flatten()
  3. Windows Forms Programming In C# 读书笔记 - 第三章 Dialogs
  4. CRC32算法详细推导(3)
  5. java遍历树_Java实现遍历N级树形目录结构
  6. Zcash已发布ZIP 313提案
  7. Mac如何制作分屏视频
  8. 容器技术Docker K8s 7 容器服务ACK集群
  9. 基本知识 100028
  10. idea使用svn拉取项目代码_IDEA使用svn下载项目,并配置svn项目和tomcat进行访问
  11. 红外测距模块 51单片机_基于51单片机的红外发射和接收程序。
  12. 等差素数列 蓝桥杯 python
  13. 这2个方法能将CAJ免费完整转换成Word
  14. Ubuntu 谷歌浏览器下载
  15. 冬至时节饮食养生要注意“三多三少
  16. wp10手机不能连接微软服务器,WP10手机微软账户登陆不了该怎么办?
  17. 爬取热榜数据,通过Qt界面显示,代码可直接运行(python3经典编程案例)
  18. c语言编译免疫算法亲和力,蚁群算法模拟系统设计及实现.doc
  19. 联想网站诊断分析(12.10)
  20. 前端后端路径斜杆问题

热门文章

  1. 从屌丝到博士:博主80分考博英语分享!
  2. 腾讯云服务器的功能与优势分析 新手看过来
  3. 【CTF】记一次ctf的RE题《pyre》的writeup
  4. 计算机名师工作室活动个人总结,【音乐工作室总结】_音乐名师工作室年度总结_一起去留学网...
  5. 计算机技术对自动化专业的影响,机械设计制造及其自动化中计算机技术的应用浅析...
  6. SMT贴片LCR首件检测的作用
  7. Unity3D动画控制器的用法
  8. Java实现网络爬虫:爬取京东商品案例
  9. npm如何升级到最新版本
  10. 是什么解放了IT部门