开发皇室战争宝箱查询系统
简介:本系统采用java(springboot)+微信小程序开发,可直接扫描程序码查看小程序效果。
在java中主要通过·调用皇室战争官方的api接口,实现宝箱顺序、用户基本信息的查询。
另:若读者会一些简单的前端,那么就可以开发出web网站版的皇室战争宝箱查询系统,所有的javaApi接口已经开发完成,只需要做好java和前端的链接。
微信端小程序名称: cr宝箱
功能:可查宝箱,可查历史数据
1.注册 皇室战争宝箱查询 系统的账号
1.登录 https://developer.clashroyale.com/,注册账号。芬兰的网站,虽然速度慢一点,但是肯定可以访问。注意自己的ip很重要,是自己的公网ip,不是本地ip。望诸君,注意。最终目的是为了获取token。
2.在java中调用 类似于爬虫访问皇室战争API官网
1.先把需要的jar包放到这里
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version></dependency><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.3</version></dependency>
其他的看自己需求,往里面加,基本就这两个核心包。
2.访问皇室战争API的核心代码
1>代码为一个函数,该函数调用皇室战争API接口,需要注意的是 Authorization 参数,该参数要自己填写进去 格式为 “Bearer token令牌",看清,有个空格,诸君。
2>URL中的 %23 代表的函数为 # ,特殊字符转义
3>要是随便乱访问路径,随随便便会被封半小时多。注意安全。
4>该函数返回值为一个json,在java端并没有做很多处理,全部递给了小程序。
public static String returnUserInfo(String userTag){System.out.println("开始获取用户的信息");try{userTag=userTag.replace("#","");System.out.println(userTag);String s="https://api.clashroyale.com/v1/players/%23"+userTag;System.out.println("访问的URL-->"+s);CloseableHttpClient httpClient = HttpClients.createDefault();HttpGet httpGet = new HttpGet("https://api.clashroyale.com/v1/players/%23"+userTag);httpGet.addHeader("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36");httpGet.addHeader("Authorization",useIApi);httpGet.addHeader("accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");httpGet.addHeader("cache_expires","20");httpGet.addHeader("Access-Control-Allow-Origin","no-cors");CloseableHttpResponse response = httpClient.execute(httpGet);System.out.println(response.getStatusLine().getStatusCode());
// System.out.println(response.getAllHeaders());if(response.getStatusLine().getStatusCode()==200){String string = EntityUtils.toString(response.getEntity(), "utf-8");System.err.println(string);httpClient.close();return string;}//5、关闭数据httpClient.close();}catch (Exception e){System.out.println(e);System.out.println("抛出异常 代码:2397852532");return "-1";}return "-1";}
3.java中的controller代码
这段代码完全没有什么技术含量
@RequestMapping("userInfo")public @ResponseBody String returnUserInfo(String tag){String userInfo=UserInfoTool.returnUserInfo(tag);if(userInfo!="-1"){return userInfo;}return "";}
至此,java端的代码就开发完毕了。笔者在这里只是粘贴了一个示例,实际中,拥有多个接口,就不累赘展示了。
3.小程序端的开发
小程序端的开发,重点主要放在对java端传过来的json的处理上。大家重点在这里放到微信小程序的js上
,小程序处理只用了一个主要的函数,放在下面,大家看看
1.小程序端对应的数据处理格式,该数据格式只对应用户的基本信息,比较复杂,这是从json中解出来的数据,大约能占json返回数据的十分之一。
data: {showModal:true,userInfo:{tag:"",name:"",trophies:"", //奖杯bestTrophies:"", //最高奖杯数wins:"", //胜利losses:"", //失败battleCount:"", //战斗场次threeCrownWins:"", //三星场次totalDonations:"", //捐卡总量tournamentCardsWon:"", //锦标赛赢得的卡牌数tournamentBattleCount:"", //锦标赛 对战次数currentSeason:{rank:"", //排名trophies:"",//奖杯bestTrophies:"", //最高奖杯数},previousSeason:{ //上一锦标赛数据id:"", //日期 年月 格式为 2022-5rank:"", //排名trophies:"",//奖杯bestTrophies:"", //最高奖杯数},bestSeason:{ //最佳赛季id:"", //日期 年月 格式为 2022-5rank:"", //排名trophies:"",//奖杯},arena:{ //地域国家信息id:"",name:""},clan:{ //部落信息tag:"", //部落标签name:"", //部落名字badgeId:"", //部落id}}},
2.去云端请求皇室战争宝箱顺序的json,并将值赋值到data数据中。
1>自己java端的网址,需要更改
2>若要将小程序上传至微信,则需要https开头的网址,本地测试,不做要求
onLoadUserInfo :function(tag){tag = tag.replace('#', '');let that=this;wx.showToast({title: '加载中', icon: 'loading', duration: 5000});wx.request({url: 'https://www.自己的网址.com:58479/cr/userInfo?tag='+tag, //仅为示例,并非真实的接口地址success: function(res) {console.log(">>>>>"+res.data.tag)console.log(">>>>>id="+res.data.leagueStatistics.bestSeason.id)const clan_tag = `clan.tag` // 拼接已知属性const clan_name = `clan.name` // 拼接已知属性const bestSeason_id = `bestSeason.id` // 拼接已知属性const bestSeason_rank = `bestSeason.rank` // 拼接已知属性const bestSeason_trophies = `bestSeason.trophies` // 拼接已知属性that.setData({tag:res.data.tag,name:res.data.name,trophies:res.data.trophies, //奖杯bestTrophies:res.data.bestTrophies, //最高奖杯数wins:res.data.wins, //胜利losses:res.data.losses, //失败battleCount:res.data.battleCount, //战斗场次threeCrownWins:res.data.threeCrownWins, //三星场次totalDonations:res.data.totalDonations, //捐卡总量tournamentCardsWon:res.data.tournamentCardsWon,// 锦标赛数据 赢得卡牌数tournamentBattleCount:res.data.tournamentBattleCount,// 锦标赛数据 对战次数[clan_tag]:res.data.clan.tag,[clan_name]:res.data.clan.name,[bestSeason_id]:res.data.leagueStatistics.bestSeason.id,[bestSeason_rank]:res.data.leagueStatistics.bestSeason.rank,[bestSeason_trophies]:res.data.leagueStatistics.bestSeason.trophies,})wx.hideToast();}})},
4.贴上小程序的程序码,可以预览下,看怎么样,页面虽然不太美观,但是该有的都有。
开发皇室战争宝箱查询系统相关推荐
- Vue开发小实践--身份查询系统
首先看一下项目的预览图 PC浏览器 音乐播放器切歌功能的实现 html部分: <audio src="" autoplay="true"></ ...
- JSP双语字典查询系统myeclipse开发sql数据库bs框架java编程web网页结构
一.源码特点 JSP 双语字典查询系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为 TOMCAT ...
- 学生成绩查询c#语言,C#学生成绩查询系统.doc
????学院 毕 业 论 文(设 计) 论文(设计)题目:学生成绩查询系统 所属系别: 信息工程系 专业班级:06计算机网络技术1班 姓 名: 常 军 玲 学 号: 200608090830129 指 ...
- 基于Java+Dubbo设计的智能公交查询系统
一.项目背景 随着经济的飞速发展,人们的生活质量有了较大的提高,城市居民的出行变得越来越频繁,城市交通也面临越来越多的挑战.城市公共交通具有客流量大.成本低.效率高.节约资源等优势,因此,如何大力发展 ...
- 如何一步步打造完美的成绩查询系统平台?
想要搭建一个高效的在线发布成绩查询系统平台,首先需要了解哪些技术和工具是必备的.本文将为您介绍一些主流的技术和工具,帮助您快速搭建一个稳定.安全.易用的成绩查询系统. 想要制作在线成绩查询系统平台有两 ...
- python课程设计:公交线路查询系统
一.设计要求 设计开发一个公交信息查询系统,提供公交的站点查询.线路查询.换乘查询功能 二.程序功能模块设计 主界面模块:完成系统菜单的显示 功能选择模块:根据用户的选择,完成其相应的功能 路线查询模 ...
- 基于JavaWeb实现的城市公交查询系统
项目编号:BS-XX-043 开发技术:JavaWeb(Jsp,Servlet) 数据库:mysql 开发工具:IDEA / Eclipse 应用服务器:tomcat8.5.31 本 系统实现基于Ja ...
- 城市公交查询系统android
摘 要: 基于计算机网络开发的信息管理系统,能够提高管理员管理的效率,改善服务质量.优秀的城市公交查询系统能够帮助管理者更加有效管理用户查询公交线路,业务规范,可以提高克服人工管理带来的错误等不利因 ...
- 基于php教学信息自助查询系统
基于php的教学信息的自助查询系统,能方便学生查询个人信息及该学生的考试信息.成绩信息等,还能查询该生的课表信息,信息以图片文字语音三个类别呈现并分享到朋友圈.系统管理员通过后台操作即时的添加学生的考 ...
最新文章
- LLVM IR 理解
- 深度学习(2)基础2 -- 分类:得分函数损失函数(损失、正则化惩罚项、梯度下降、学习率)概率
- 经常可能会用到的【函数节流和函数防抖】记录下,做下区分
- Unix的轻巧“约取而实得”(上篇)
- ajax后台返回数据中文乱码_解决Jmeter返回值显示中文乱码 的三种方法及设置随机动态参数(非原创侵删)...
- Nginx 架构浅析
- 小程序同时设置点击跳转与自动跳转导致重复跳转的问题及解决
- alonedb.php on line 58,SHOPEX出现\core\include_v5\AloneDB.php on line 58的解决办法
- CentOS 5打造全功能Web服务器
- python根据文件名打标签_使用python将图片按标签分入不同文件夹的方法
- 国外前端开发大神经验:目标越明确,计划就越专业,切记,不要撒网!
- [转载] Java异常:选择Checked Exception还是Unchecked Exception?
- FS FT DTFT DFT关系及频谱分析总结
- 无光驱服务器操作系统安装系统吗,没有光驱的老机型如何安装操作系统。
- Android各厂商自启动管理界面
- Unable to launch the Java Virtual Machine Located at path
- oracle pga建议值,对SGA和PGA的优化建议
- ios中头文件交叉导入问题
- 必记的13个不定积分公式(详细推导)
- 假如我年少有为不自卑