微信小程序 java服务端下的post请求
微信小程序的 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请求相关推荐
- 小程序PHP CGI,微信小程序php服务端nginx配置
微信小程序php服务端nginx配置 微信小程序server端如果选择自己部署的话,可以选择java或者php的,为了省事我选择了php的,腾讯是用CodeIgniter框架做的demo,由于CI框架 ...
- 浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)
浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) 参考文章: (1)浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) (2)https://www.cnblogs.com/ ...
- 微信小程序java服务_微信小程序访问webService(Java)
在前台UI确认后,终于进入到后台服务的搭建及实现中.所及而来的问题就出现了,为了提高后台程序的可用性.设计初期决定,通过搭建java WebService实现.准备工作还是比较充分的,创建WebSer ...
- 微信小程序中开发环境下的POST请求
写在前面 不得不说,开发环境下,微信小程序要是在发起网络请求的话,遇到的坑也是有的.尽管,微信提供了十分便捷的API 供开发者调用.今天在小程序中写了一个表单,需要提交到服务器上,于是发起了一个 PO ...
- 10分钟上线 - 利用函数计算构建微信小程序的Server端
摘要: 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播. 当 ...
- 口令红包-利用函数计算构建微信小程序的server端
摘要: 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播. 当 ...
- 利用Serverless构建微信小程序的Server端
前言 这篇文章适合所有的想微信小程序开发新手.老鸟以及想准备学习开发微信小程序的程序猿.本文以开发一个类似"语音口令红包"小程序为例,向您讲解如何使用阿里云函数计算快速构建微信小程 ...
- 微信小程序商城服务器搭建,基于微信小程序商城毕业设计(小程序客户端+服务端Node.js源码)毕业论文+运行说明...
微信小程序商城毕业设计(微信小程序客户端毕业设计) 摘 要 购物商城系统是保证以购物商城为基础的网上交易实现的体系.市场交易是由参与交易双方在平等.自由.互利的基础上进行的基于价值的交换.网上交易同 ...
- java家政后台代码下载_微信小程序家政服务预约系统毕业论文+前台源码+后台(JavaSSM)源码及Mysql数据库...
摘 要 O2O模式能够充分的利用网站创立企业在O2O模式中的竞争优势,基于O2O模式的这一特点,本次毕业设计开发了微信小程序家政服务预约系统.该家政服务预约系统发挥了网络优势,采用O2O模式营销手段 ...
最新文章
- Spring Boot 最流行的 16 条实践解读!
- linux下使用update-alternatives切换java版本的正确姿势
- 7月最新发布10.2.0.4.5 Patch Set Update
- NTFS格式分区大小数值表
- abaqus 录制结果动画_后处理动画录制
- 显色指数(CRI)计算软件-升级版可视化界面
- 交换机测试丢包软件,交换机丢包问题定位
- [Linux驱动炼成记] 04-功放TAS5754
- 声网 X 牛客网 200万场视频面试背后的实时互动技术支撑
- 2020年金融科技创新项目总结
- 浏览器提示代理服务器没有响应
- 生日蛋糕(noi99)
- mysql数据库网课_中国大学MOOCMysql数据库系统网课答案
- 月记 18.11.08
- 【MacOS】Mac下的gVim - MacVim
- e代驾——打造代驾服务标准化平台
- 视觉SLAM十四讲CH8代码解析及课后习题详解
- 核心微生物分析_微生物总结(全)
- 1030: 判断直角三角形Python
- LocalDate加减操作及比较大小
热门文章
- 分布式电源选址定容 在改进的IEEE33节点系统中分布式电源选择最佳接入点和接入容量
- 【分布式能源的选址与定容】基于多目标粒子群算法分布式电源选址定容规划研究(Matlab代码实现)
- 163邮箱收不到mdaemon 11发过来的邮件
- 英特尔CEO帕特·基辛格:以独特优势抓住巨大的增长机遇
- 时钟失效之后,STM32还能运行?
- Python数据采集与文本分析(学术)
- 简述蒙代尔政策配合说的主要内容
- 帕累托最优(Pareto Optimality)和纳什均衡(Nash Equilibrium)之间的关系
- POS(权益证明机制)
- 嵌入式stm32f411系列-- --学前准备(mdk+器件支持包+stm32cubemx+固件包)