一、写在前面

最近接触了小程序的开发,后端选择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后台的通信相关推荐

  1. 《微信小程序》微信小程序用java后台连接数据库进行操作。

    微信小程序与Java后台的通信 一.写在前面 最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很 ...

  2. 微信小程序登录Java后台接口

    微信小程序登录java后台接口 首先看一下微信小程序的开发文档: 微信小程序开发文档 步骤: 小程序端向微信接口服务发送请求--wx.login():获取到登录临时凭证code 小程序端拿着获取到的c ...

  3. Java小程序post如何传参,微信小程序向Java后台传输参数的方法实现

    微信小程序向Java后台传输参数的方法实现 首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中写 在微信小程序的官方文档中可以看到一个api叫wx.request它的作用 ...

  4. 微信小程序及Java后台测试登录

    微信小程序及Java后台测试登录 文章目录 微信小程序及Java后台测试登录 一.使用的工具以及开发环境 二.微信端登录代码. 第一种方式,使用wx.getUserInfo直接获取微信头像,昵称. 第 ...

  5. java小程序详解_微信小程序登录Java后台接口(详解,附示例代码)

    首先看一下官方文档 地址:微信小程序官方文档API登录接口 我们先对官方给的时序图进行简单的分析 1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.req ...

  6. 微信小程序在java后台获取用户unionid等敏感信息

    最近在弄小程序,阅读了微信官方文档,上面说可以在后台获取用户的openid和unionid这些敏感信息,当然网上也有不少帖子,有的是在前台获取的,不过这里不太建议把这些敏感信息放在前台,毕竟不太安全. ...

  7. 微信小程序和Java后台连接,进行数据交互

    小程序端和后台进行连接,并且向后台传递数据,同时接收后台传递回来的数据.基于idea.Java后台. 步骤一:创建一个Spring-boot项目: 步骤二:写Controller(后台,基于SSM): ...

  8. 微信小程序——利用java后台解析Excel文件的数据

    后台为java,ssm框架 1.在SpringMvc.xml文件中增加Spring文件上传的解析器 <bean id="multipartResolver"class=&qu ...

  9. 微信小程序商城 java后台

    微信小程序学习 最近工作正好有闲暇时间,根据公司安排先前期学习调研一下"微信小程序",以供后期解决相关的运营需求,而本篇文章就是我对此次学习的一次总结. 什么是小程序 ? 如何全面 ...

最新文章

  1. 自定义的无数据提示界面
  2. Android消息处理机制(Handler、Looper、MessageQueue与Message)
  3. Object 保存到文件中
  4. iOS手势操作简介(四)
  5. Resharper4.5:增强你的.net开发
  6. ssh X11 Forwarding(本地共享远程服务器界面)
  7. java课程设计模拟画图_课程设计java画板模拟画图工具
  8. 扬州市 工程师职称计算机考试,扬州市建筑专业工程师专业技术资格条件
  9. scala trait ,abstract class,case class,class 的一些琐碎注意事项,仅针对3.0以下
  10. 谈谈对儒家与道家的一些小小看法
  11. 【附源码】计算机毕业设计JAVA校园代办业务系统
  12. Oracle 字典表
  13. 三维欧几里德空间中两个向量叉积的问题
  14. PHP API 接口文档生成 简单版本 基于一位大哥的代码改的
  15. puppeteer 清空input原本的值
  16. 2023年大厂高频软件测试面试题:Web 测试 + 接口测试 +App 测试
  17. C/C++中的STL库
  18. 四种区块链底层技术形态的对比解读
  19. 打工人必备,850多份合同范文模板合集免费下载
  20. 作业调度和进程调度的辨析

热门文章

  1. mysql 手工修复_MySQL自动备份和手工恢复
  2. lisp中怎样调取图形_越玩越聪明的图形思维游戏
  3. 指标公式c语言源码下载,自用的一个不错的指标 (源码、附图、副图)
  4. linux 中断奶乱码,科学断奶经历:早中晚三次母乳,一个月内循序渐进自然断奶...
  5. catia钣金根据线段折弯_SolidWorks钣金折弯参数设置技巧
  6. python中时间处理去空格去冒号_Python实用日期时间处理方法汇总
  7. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](2)
  8. android定位会出现的问题,Android 定位当前位置可能出现的问题
  9. shell函数日期之间的操作(日期转秒,日期间隔秒,日期间隔天)
  10. [机器学习] XGBoost on Spark 分布式使用完全手册