正方教务系统——用Postman优雅的选课(含正方教务系统接口文档)

一.引言 由于每个学期开学都要在学校的土豆服务器上进行抢课大战(总抢不到),我对学校的教务系统(正方教务系统V-8.1.3)早已深恶痛绝,因此,去年用python模拟登陆(

一.引言

由于每个学期开学都要在学校的土豆服务器上进行抢课大战(总抢不到),我对学校的教务系统(正方教务系统V-8.1.3)早已深恶痛绝,因此,去年用python模拟登陆(selenium)写了个网课捡漏的脚本(当有同学退课时,由于脚本一直运行,因此可以迅速选上)。本以为这学期我的脚本就可以大展身手,哪知道今年学校突然说改变选课方案,改为分年级分时段选课只允许选课不允许退课,这就代表了,我的捡漏脚本被宣判死刑了。

但只要思想不滑坡,方法总比困难多,经过我的不懈努力,最终成功实现如下效果:

  • 当只允许高年级选课时,低年级可突破限制,与高年级一同选课
  • 突破不允许退课限制,自由退课

二.前提条件

  1. 有一个可以正常进行通识选修课选课的账号A

  2. 有一个可以进行主修课选课,但不允许选修课选课的账号B(简易版教程需要,进阶版教程不需要)

    ps:限制还是挺多的,但是事实上只要知道了选修课对应的xkkz_id,就可以直接通过Postman为所欲为

三.使用到的工具

  • Postman
  • Chrome浏览器
  • 高年级的账号(允许进行网课选取的账号)
  • 低年级的账号(不允许进行网课选取的账号)
  • 正方教务系统选课接口文档说明

四.教程

简易版

1.登陆高年级账号,进入选课界面,点击通识选修课

2.F12打开开发者工具,复制xkkz_idvalue

3.登录低年级账号,进入选课界面,F12打开开发者工具,将代码中的xkkz_idvalue值替换为上面复制的值

4.将kklxdmvalue值改为10

5.将njdm_idvalue值改为 允许进行选课的年级,如现在允许2019级进行选课,则改为2019

在本示例中,由于高年级账号为2019级的,因此将njdm_id改为2019

6.回到页面,点击搜索键,发现出现的课程为通识选修课,且可以正常进行选课

进阶版

1.同简易版一样,登陆高年级账号先把xkkz_id的值复制了,后面会用到

2.登录低年级账号,进入选课界面,F12进入开发者工具,点击Network,刷新界面,找到含Cookie的请求,查看Cookie,复制JESSIONID

3.打开Postman,新建Post请求用于搜索课程,具体如下:

请求地址:

https://XXXXX/xsxk/zzxkyzb_cxZzxkYzbPartDisplay.html

请求头:

JSESSIONID为第二步复制的值

Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

请求参数

变量名值(示例)注释是否必须
xkxnm2021当前学期年份如2021-2022 即2021
xkxqm12定值
kklxdm1001为主修课 10为选修课
kspage1页号
jspage10一页显示的数量
filter_list[0]XXX搜索的课程名称

效果如下:

4.找到要选择的课程,复制其kch_id

5.新建请求,用于显示课程具体信息,具体参数如下:

请求地址:

https://XXXXX/xsxk/zzxkyzbjk_cxJxbWithKchZzxkYzb.html

请求头:

JSESSIONID为第二步复制的值

Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

请求参数

变量名值(示例)注释是否必须
bklx_id0定值
njdm_id2019年级代码(允许正常选课的年级)
xkxnm2021当前学期年份如2021-2022 即2021
xkxqm12定值
kklxdm1010为选修课 01为主修课
kch_idXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX课程号(第四步复制的)
xkkz_idD824D824D824D824D824D824D824D824第一步复制的值

效果如下:

6.复制do_jxb_id

7.新建请求,用于进行选课,具体参数如下:

请求地址:

https://XXXXX/xsxk/zzxkyzbjk_xkBcZyZzxkYzb.html

请求头:

JSESSIONID为第二步复制的值

Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

请求参数

变量名值(示例)注释是否必须
jxb_ids7cad8a50a08b2c9…(共257个字符)教学班号(动态刷新) 第六步复制的值
kch_idXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX课程号(第四步复制的)
qz0定值

效果如下:

flag==1则表示选课成功


教程结束,总的流程差不多就是这个样子,总体而言可玩性非常高,太刑了👀

我写了相对更全更完整的正方教务系统的接口文档说明已选课程查询接口退课接口可移步文档查看

文档地址:正方教务系统选课接口文档说明

🎈文档持续更新中,欢迎Star

希望对你有帮助,谢谢!

PS:教程仅供开发交流使用,禁止用于个人盈利!

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754285765a5141965.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信