微信小程序与Java后台的通信
一、写在前面
最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很明白小程序如何与后台进行通信的,然后查找资料发现结合了官方提供的api后好像和我们普通的web前后端通信也没有多大的区别,有想法后就写了这个测试程序。
二、API文档
wx.request(OBJECT)
发起网络请求。使用前请先阅读说明。
OBJECT参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 是 | 开发者服务器接口地址 | |
data | Object/String | 否 | 请求的参数 | |
header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。 | |
method | String | 否 | GET | (需大写)有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT |
dataType | String | 否 | json | 如果设为json,会尝试对返回的数据做一次 JSON.parse |
success | Function | 否 | 收到开发者服务成功返回的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数 | 类型 | 说明 | 最低版本 |
---|---|---|---|
data | Object/String | 开发者服务器返回的数据 | |
statusCode | Number | 开发者服务器返回的 HTTP 状态码 | |
header | Object | 开发者服务器返回的 HTTP Response Header | 1.2.0 |
data 数据说明:
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
- 对于
header['content-type']
为application/json
的数据,会对数据进行 JSON 序列化 - 对于
header['content-type']
为application/x-www-form-urlencoded
的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
示例代码
wx.request({url: 'test.php', //仅为示例,并非真实的接口地址data: {x: '' ,y: ''},header: {'content-type': 'application/json' // 默认值},success: function(res) { console.log(res.data) } })
三、基本思路
将数据通过get方式传到Java servlet类,servlet得到微信小程序的数据打印出来并返回一个数据给微信小程序,从而实现一个最简单的前后端通信。
四、关键代码
微信小程序代码
index.wxml
<view><button bindtap='bindtest'>test</button></view>
index.js
bindtest: function(){wx.request({url: 'http://localhost:8080/Demo01/servlet02',data:{username:'001',password:'abc'},method:'GET',header: {'content-type': 'application/json' // 默认值}, success:function(res){ console.log(res.data); }, fail:function(res){ console.log(".....fail....."); } }) },
Java serlvet类代码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=utf-8"); /* 设置响应头允许ajax跨域访问 */ response.setHeader("Access-Control-Allow-Origin", "*"); /* 星号表示所有的异域请求都可以接受, */ response.setHeader("Access-Control-Allow-Methods", "GET,POST"); //获取微信小程序get的参数值并打印 String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("username="+username+" ,password="+password); //返回值给微信小程序 Writer out = response.getWriter(); out.write("进入后台了"); out.flush(); }
五、效果演示
前端控制台
ecplise控制台
至此说明微信小程序与Java后台通信成功!当然这是最简单的通信,比较复杂的是需要对Json数据的处理,以后有时间再总结下。
转载于:https://www.cnblogs.com/dichuan/p/7932442.html
微信小程序与Java后台的通信相关推荐
- 《微信小程序》微信小程序用java后台连接数据库进行操作。
微信小程序与Java后台的通信 一.写在前面 最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很 ...
- 微信小程序登录Java后台接口
微信小程序登录java后台接口 首先看一下微信小程序的开发文档: 微信小程序开发文档 步骤: 小程序端向微信接口服务发送请求--wx.login():获取到登录临时凭证code 小程序端拿着获取到的c ...
- Java小程序post如何传参,微信小程序向Java后台传输参数的方法实现
微信小程序向Java后台传输参数的方法实现 首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中写 在微信小程序的官方文档中可以看到一个api叫wx.request它的作用 ...
- 微信小程序及Java后台测试登录
微信小程序及Java后台测试登录 文章目录 微信小程序及Java后台测试登录 一.使用的工具以及开发环境 二.微信端登录代码. 第一种方式,使用wx.getUserInfo直接获取微信头像,昵称. 第 ...
- java小程序详解_微信小程序登录Java后台接口(详解,附示例代码)
首先看一下官方文档 地址:微信小程序官方文档API登录接口 我们先对官方给的时序图进行简单的分析 1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.req ...
- 微信小程序在java后台获取用户unionid等敏感信息
最近在弄小程序,阅读了微信官方文档,上面说可以在后台获取用户的openid和unionid这些敏感信息,当然网上也有不少帖子,有的是在前台获取的,不过这里不太建议把这些敏感信息放在前台,毕竟不太安全. ...
- 微信小程序和Java后台连接,进行数据交互
小程序端和后台进行连接,并且向后台传递数据,同时接收后台传递回来的数据.基于idea.Java后台. 步骤一:创建一个Spring-boot项目: 步骤二:写Controller(后台,基于SSM): ...
- 微信小程序——利用java后台解析Excel文件的数据
后台为java,ssm框架 1.在SpringMvc.xml文件中增加Spring文件上传的解析器 <bean id="multipartResolver"class=&qu ...
- 微信小程序商城 java后台
微信小程序学习 最近工作正好有闲暇时间,根据公司安排先前期学习调研一下"微信小程序",以供后期解决相关的运营需求,而本篇文章就是我对此次学习的一次总结. 什么是小程序 ? 如何全面 ...
最新文章
- 自定义的无数据提示界面
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Object 保存到文件中
- iOS手势操作简介(四)
- Resharper4.5:增强你的.net开发
- ssh X11 Forwarding(本地共享远程服务器界面)
- java课程设计模拟画图_课程设计java画板模拟画图工具
- 扬州市 工程师职称计算机考试,扬州市建筑专业工程师专业技术资格条件
- scala trait ,abstract class,case class,class 的一些琐碎注意事项,仅针对3.0以下
- 谈谈对儒家与道家的一些小小看法
- 【附源码】计算机毕业设计JAVA校园代办业务系统
- Oracle 字典表
- 三维欧几里德空间中两个向量叉积的问题
- PHP API 接口文档生成 简单版本 基于一位大哥的代码改的
- puppeteer 清空input原本的值
- 2023年大厂高频软件测试面试题:Web 测试 + 接口测试 +App 测试
- C/C++中的STL库
- 四种区块链底层技术形态的对比解读
- 打工人必备,850多份合同范文模板合集免费下载
- 作业调度和进程调度的辨析
热门文章
- mysql 手工修复_MySQL自动备份和手工恢复
- lisp中怎样调取图形_越玩越聪明的图形思维游戏
- 指标公式c语言源码下载,自用的一个不错的指标 (源码、附图、副图)
- linux 中断奶乱码,科学断奶经历:早中晚三次母乳,一个月内循序渐进自然断奶...
- catia钣金根据线段折弯_SolidWorks钣金折弯参数设置技巧
- python中时间处理去空格去冒号_Python实用日期时间处理方法汇总
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](2)
- android定位会出现的问题,Android 定位当前位置可能出现的问题
- shell函数日期之间的操作(日期转秒,日期间隔秒,日期间隔天)
- [机器学习] XGBoost on Spark 分布式使用完全手册