先让我再兴奋一会儿,哈哈哈哈哈哈。就在刚刚,滞留了好几天的bug,终于被我干掉了,芜湖芜湖~~
这个bug来源于我正在开发中的微信小程序,开发这个小程序的初衷呢,主要是因为我们学校那教务处的网站在手机上查分或者查考试安排等内容特别不方便,甚至连平均绩点以及成绩详情这些关键信息,都得绕很大一圈才能查到。于是就想到,电脑上不方便,那干脆弄到手机上,重新对接一下接口,应该就很方便了。结果刚一开发,就被困在了第一步——“登录教务处”,🌿!(一种绿色植物),首先是微信小程序对安全性不高的http网页有很大的排斥性,需要设置一下才能正常GET,否则直接被屏蔽掉,接着是Cookie的问题,微信小程序不像Python那样,有一个专门可以维护Cookie的库,这就导致只能开发者自己来实现相应的逻辑,或者重写requests函数,这很显然,人工维护就特别容易出错(对前端不熟练罢了),这个还好,本质上就是个字符串提取,但一直出错的地方在于,那个验证码本身也是需要带着Cookie访问的,但我不管怎么处理header,服务器始终就是要拒绝我访问,诶?这就奇怪了,之前桌面端的程序也是用的类似的逻辑,只是语言不同,怎么就登录失败了呢(学号、密码和验证码都输入正确),结果后面我才注意到,好家伙,验证码的header里面带入的Cookie始终是上次的,而并非本次最
新的Cookie,相当于Cookie都不正确,服务器允许连接才怪!
那么,问题找到了,然后分析了半天的代码,感觉Cookie不应该会出错,结果最终把第一次向服务器请求的那段代码(也就是用来获取Cookie)移到app.js文件下,而不再放到登录页面的逻辑代码下,这样Cookie的获取,就没发生错误了(按理说,我之前把获取Cookie的代码放在登录页面的onload或者onshow下应该也没问题的),先不管那么多了。看到提示弹窗出现的是“学分制综合教务”而不是“错误信息”时,感觉整个人快直接跳起来了(虽然可能也不是个什么大的bug,但确实也让我找了好久才找到)
一时兴奋,便直接拿出手机写了这篇博客,一方面是给这个微信小程序的开发,留个小小的记录。另外一方面呢,也是希望以后我自己再看到这篇博客后,能及时从中获取经验,相当于是一个日志文档吧
2022年1月21日 02时16分