基于模拟客户端提交HTTP数据包的考试成绩查询系统实现
2013-10-24胡云峰陈皖芬
胡云峰,陈皖芬
(1.文山学院 计科系,云南 文山 663000;2.文山州民族职业技术学校,云南 文山 663000)
1 需求分析
国家每年都组织两次全国计算机等级考试,目的是检验考生的计算机使用水平。考试结束后,学校将所有考生的姓名、考号和查询密码整理为一个文件(如图1),组织大量教师分任务进行查询。由于考生众多,工作重复、枯燥,会导致很多错误的发生,因此往往一位教师完成工作后还需要另一位教师进行审核。是否可以寻求一种简单便捷的方式,避免重复输入考生考号、密码,同时避免手动登记考生考试成绩,最后可以分类统计,汇总及分析考生考试情况?

图1 学生姓名、考号及查询密码
2 系统实现
2.1 实现方式
抓取分数查询过程中产生的数据包,对数据包进行分析,提取有用信息,构造出查询数据后,利用XMLHttpRequest对象模拟客户端浏览器向服务器提交查询请求,最后根据服务器向客户端浏览器发回的应答数据包,提取出考生考试成绩等有用信息进行保存。
2.2 网站HTTP数据包抓取
利用HTTPWATCH PROFESSIONAL捕获查询过程产生的数据包[1],如图2所示。

图2 成绩查询结果数据捕获
得到HTTP数据包数据如下:


2.3 HTTP数据包数据分析
对以上抓取到的HTTP数据包数据进行分析:
“POST /jsjks2011/servlet/Search HTTP/1.1”表示整个查询过程利用的是“POST”方式传递数据,数据传递的目的地址是“/jsjks2011/servlet/Search”。
“xh=3533520043000112&cxmm=19900320&Valid ateCode=gefw3&button=”表示整个查询过程中传递的数据,由3部分构成,其中“xh=3533520043000112”是在页面上填写的考号,“cxmm=19900320”是在页面上填写的查询密码,“ValidateCode=gefw3”是页面生成的验证码。
2.4 获取考试成绩功能实现
综合以上关键数据,利用易语言[2]及已经封装了XMLHttpRequest模拟数据提交绝大多数功能的“精易模块”来模拟整个过程的数据传递。……
