我们知道了通过发送get请求来进行手动刷课的原理,但是这显然还是不够方便。而且虽然我们知道了发送的包,但是我们并不知道这些数据从何而来。这是一个问题。
继续查看源码,终于在头信息里发现他引用了一个叫StudentLearning.js文件,介绍了整个系统运行的逻辑。其中有一个非常重要的函数:
1 | //视频学习表 |
看到了我们之前用的地址了,这里他用ajax技术向后台传输那些数据,fPlanID、fPartID、fSecond这些东西就来自于这里了。
其中的fPlanID的值很明显就是课程的URL:http://kczx.suda.edu.cn/G2S/Learning/Learning.htm?Part=&Plan=34&type=2
里的Plan值了。那么fPartID该怎么得到呢?
在StudentLearning.js中找了一下,又发现了一个函数:
1 | function GetList(type) { |
名字叫GetList,那么意图也就很明显了,就是得到课程列表的所有信息。用ajax向后台传入课程名,然后就会得到一大串的关于整个课程信息的回复。尝试了发送下,得到如下类似json格式的反馈:
1 | { |
说他是类json格式,是因为他的RowCount和Rows没有加引号。。。。也是无语。。。
我们发现想要得到的信息几乎全在这里,通过他的命名也很容易看懂其表示的含义。
OK,到现在我们已经知道了所有想要的信息和业务的逻辑了,剩下的就是将这个思想付诸实现了。