微信小程序与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数据的处理,以后有时间再总结下。

《微信小程序》微信小程序用java后台连接数据库进行操作。相关推荐

  1. 小程序数据怎么传输到服务器,微信小程序怎么将数据传输到Java后台

    微信小程序怎么将数据传输到Java后台 发布时间:2020-12-10 14:19:49 来源:亿速云 阅读:124 作者:Leah 今天就跟大家聊聊有关微信小程序怎么将数据传输到Java后台,可能很 ...

  2. 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程)

    本篇记录说明 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程,详细内容可私信交流) (第一次写博客,写得不好的地方见谅,面向新手,大佬请无视,不喜勿喷 ...

  3. 微信小程序图片上传到java后台

    前言 关于云存储的文件上传,我想说的真的挺多的,这是一篇纯原创的基于小程序 或者是SpringBoot的云存储的全过程. 整篇教学很细很细,适合于所有的java学习者,特别是刚刚结束学习java想要练 ...

  4. 微信小程下载word文档Java后台实现

    微信小程序下载文件 开发环境:微信开发者工具+eclipse+Tomcat+Mysql 1.过程描述 微信开发者工具提供接口,访问eclipse中的Java项目地址,在对应的Java项目中从磁盘读取指 ...

  5. 微信小程序获取手机号,含java后台接口实现

    前言 前面写了一篇 java实现微信小程序加密数据解密_女IT玩家-彬彬的博客-CSDN博客 然后接着写微信小程序如何获取手机号,本文既有小程序的实现代码.也有后台java的实现代码哦!! 小程序实现 ...

  6. java数据库访问方式_纯java方式连接数据库简单操作

    package com.beiwo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Result ...

  7. 600多个微信小程序源码_点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解...

    今天来给大家讲解一个完整的微信扫码点餐项目.java后台+微信小程序实现点餐系统. 后台技术选型: JDK8 MySQL(需要5.6以上) Spring-boot Spring-data-jpa Lo ...

  8. 深入讲解微信小程序上传图片与JAVA后台的结合

    背景 微信小程序上传文件是微信小程序提供的API之一,如果用JAVA后台如何来处理上传的文件呢? 官方文档 UploadTask wx.uploadFile(Object object) 将本地资源上 ...

  9. vue小米商城源代码_微信商城信息管理系统(java后台+小程序)

    前一段时间在公众号中发布了一套微信商城信息管理系统(java后台+小程序),也许大家可能都还记得.今天再给大家重复呈现一遍.重新梳理下,方便大家理解这是做什么用的,以便日后使用.开始正题 01 编写目 ...

最新文章

  1. vs编译器 printf 控制台输出_【语言教程】通过语言了解GCC编译器工作过程
  2. python线性整数规划求解_实例详解:用Python解决整数规划问题!
  3. python3下载文件-Python3学习笔记(十八):文件上传和下载
  4. vue读取终端硬件信息_[提示]在macOS终端上查看硬件信息
  5. Python 绘制出酷炫的三维图
  6. 用python编写daemon监控进程并自动恢复(附Shell版)
  7. Windows编程中各种操作文件的方法
  8. win11菜单怎么添加快捷方式 Windows11开始菜单添加快捷方式的设置方法
  9. 用装饰器来进行登录验证
  10. 从零开始学习Sencha Touch MVC应用之三
  11. Linux面试题(34道)
  12. ISO14001环境管理体系认证好处
  13. ctbs mysql_C/C++/Java
  14. 常用搜索算法—盲目搜索和启发式搜索
  15. 各种常用电子元器件的识别方法
  16. Logo设计技巧和方法
  17. 关于如何让网站被搜索引擎收录
  18. linux磁盘配额分区,Linux磁盘配额
  19. 【毕业设计】大数据工作岗位数据分析与可视化 - python flask
  20. sphinx php搜索引擎,sphinx 全文搜索引擎

热门文章

  1. 搞笑的英语翻译,数据集整理
  2. C#之判断字母大小、字母转ACII码
  3. Golang 浮点数运算 避免精度损失 Decimal包
  4. 连锁不平衡:linkage disequilibrium
  5. 等值连接mysql_数据库等值连接,左连接,右连接的区别
  6. 芯片ECO的种类和修复方法介绍
  7. 光猫拨号和软路由拨号失败服务器无响应,光猫拨号好还是无线路由器拨号好(一文解答你的疑惑)...
  8. html文字自动消失了,为什么从网页上复制的文字到word上一修改后面的字就自动消失了...
  9. Huggingface Transformers库学习笔记(二):使用Transformers(上)(Using Transformers Part 1)
  10. 海拥,一枚热爱分享技术与快乐的博主