微信小程序与java后台交互

java后台使用的ssm框架,小程序连接的本地接口。跟正常的web访问没什么区别,也是后台获取url,返回json数据;只是小程序前台请求的url要带上http://localhost:8080
1. 项目结构


2. 配置文件:

Jackson相关包下载 除去里面的js文件
3. test.js和test.wxml
(1) test.js

bindtest:function(){
    wx.request({
      url:'http://ip:8080/WxProgram/buttonTest2',
      data:{
        username:'admin',
        password:'admin'
      },
      method:'GET',
      header:{
        'content-type':'application/json'
      },
      success:function(res){
        console.log(res.data);
      },
      fail:function(res){
        console.log("--------fail--------");
      }
    })
  }

(2) test.wxml

  <view>{{name}}</view>
  <view>
  <button bindtap='bindtest'>test</button>
  </view>

4. WxTestController.java

@RequestMapping(value="/buttonTest2")
    public void buttonTest(String username, String password, HttpServletResponse response) throws ServletException, IOException{
        response.setContentType("text/html;charset=utf-8");          
        /* 设置响应头允许ajax跨域访问 */  
        response.setHeader("Access-Control-Allow-Origin", "*");  
        /* 星号表示所有的异域请求都可以接受, */  
        response.setHeader("Access-Control-Allow-Methods", "GET,POST");  
       
        System.out.println("username="+username+" ,password="+password);
        
        //返回值给微信小程序
        Writer out = response.getWriter(); 
        out.write("进入后台");
        out.flush(); 
    }

运行结果:

小程序前台:

java后台:

开始一直没有连成功,后来百度发现要先设置一下。参考这里
在请求本地接口时,要开启"不校验请求域名、TLS版本及HTTPS证书"选项:设置->项目设置->不校验请求域名、TLS版本及HTTPS证书。因为wx.request的url请求中不能有端口。

     

 

 

远程访问

由于前后台是两个人开发的,需要远程访问。而因为注册的阿里云域名审查时间长,暂时用的花生壳远程连接。方法:下载花生壳客户端,使用免费赠送的域名,这里花了六块钱,忘了哪花的了。
登录花生壳,设置内网穿透->添加映射。内网主机即本机ip地址,cmd,用ipconfig命令查看ipv4地址。如图。


这里遇到一个问题,添加的映射一直没显示,后来通过客服后台操作才显示成功。如图。


添加成功之后,启动Tomcat,之前的内网访问地址http://ip:8080就可以改用对应的外网访问地址来访问了。

花生壳教程:http://service.oray.com/question/2480.html

posted @ 2018-05-03 21:10  zeroingToOne  阅读(50554)  评论(0编辑  收藏  举报