探寻学校查询宿舍电费余量的API接口
发布于 2021-10-16 21:48
本文来自小亮的个站。
![](https://weixin.aisoutu.com/cunchu4/4/2021-10-16/4_1634398731655.png)
从这张图片可以看出,在这个部分有一个名为“SearchM10”的方法,其作用是访问/Home/GetRoomByRoomid目录,同时传入一个名为“fangjian”的参数。通过对源文件其他部分的分析,我们发现“fangjian”的值就是我们在查询框中输入的内容,即房间号。
于是我们很容易得到电费查询接口的地址:
http://192.168.244.213:9000/Home/GetRoomByRoomid?fangjian=FANGJIAN
假定我们要查询的房间号为1101102,那么本地址的“fangjian”参数就等于1101102,现在我们查看一下通过该接口返回的查询结果:
提交后这个网址返回一个Json数据包,看下里面包含的信息后基本可以确定这就是电费查询接口。下面我们看一下返回的数据包里都包含哪些信息。把Json数据包格式化后结果如下:
{
"AccList":null,
"roomList":[
{
"ZZS":0,
"ZZT":0,
"NUpdateTime":"2018-11-25 22:03:37",
"STATE"1,
"AREAID":null,
"AREA":null,
"A_CODE":null,
"A_POS_CODE":null,
"BUILDINGID"12,
"BUILDING":null,
"B_CODE":null,
"B_POS_CODE":null,
"ROOMID"774,
"ROOM":"1101102",
"R_CODE":null,
"R_POS_CODE":null,
"DEVICECODE":"068461",
"ZYDL":null,
"MFDL":null,
"CZDL":null,
"YYDL":null,
"SYDL":938.10,
"UPDATETIME":null
}],
"Saleinfos":[
{
"PATHCODE":"******学院-1舍-1层-1101102",
"unitprice":0.5,
"Total1":0,
"Total2":0,
"OrderID":null,
"PayType":1,
"BuyerType":null,
"BuyerID":"",
"SALEID":0,
"ROOMID":null,
"RECHARGE":2,
"PRICE":1,
"TYPE":1,
"PayWAY":1,
"MEMO":"完成",
"Asker":0,
"PutTime":"\/Date(-62135596800000)\/",
"STATE":null,
"AskTime":"\/Date(-62135596800000)\/",
"AskTime1":"2016/9/14 8:51:18",
"AskTime2":null
},/*上面是一次电费交易信息,后面还有几次信息,这里省略*/ ]
"CombineInfo":[],
"IsOK":true,
"Msg":null,
"Sno":null,
"Account":0,
"IdNo":null
}
如果我们仅仅只是要实现查询电费余额的功能,上方的数据包中我们只需关心三个字段:roomList.0.ROOM、roomList.0.NUpdateTime、roomList.0.SYDL,这三个字段分别表示房间号、余额更新时间和剩余电量。接受到数据包并把对应数据提取出来,我们的查询工作就可以完成了。
那么,回到最初提出的问题:如何实现电量的自动查询?
在本地写一个脚本,然后设置任务计划,再按照刚才的思路就能获取到电量余额信息了,甚至我们可以接着编写脚本来实现低于余额最低阈值自动提醒功能,目前学校内这方面做得最好的机械娘的实现思路就是这个。通常学校的电表每天更新四次,所以我们可以把查询时间分别设置为早8点、中午13点、傍晚18点和晚上21点。
当然,完成这套查询工作的大前提是:学校电费管理服务器不崩……
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材