使用 jsoup 模拟登录 urp 教务系统

需要的 jsoup 相关 jar包:https://www.lanzous.com/i1abckj

1、首先打开教务系统的登录页面,F12 开启浏览器调试,注意一下 Request Headers 一栏的 Cookie 选项,我们一会需要拿这个 Cookie 去提交登录请求,否则会提示:请登录 或者 出现错误。

2、输入账号密码后点击登录,可以看到请求提交过程以及 FormData 发送的数据:

这个 loginAction.do 就是要提交验证的地址

3、下面写代码:

public class Test {
	
    //下面的 Url 请求就是通过浏览器调试中 Network 一栏获取到的,需要多多调试

	//基本 Url
	private static String baseUrl = "http://202.206.161.174:9080/";
	//分数查询 Url
	private static String scoreUrl = baseUrl + "gradeLnAllAction.do?type=ln&oper=fainfo&fajhh=5325";
    //课表查询 Url
	private static String courseUrl = baseUrl + "xkAction.do?actionType=6";
	//学籍信息 Url
	private static String userInfoUrl = baseUrl + "xjInfoAction.do?oper=xjxx";
	//注销 Url
	private static String logoutUrl = baseUrl + "logout.do";
	//session 的键
    //Cookie 的格式:Cookie : JSESSIONID=******,那么 sessionId 就是等号后面的一串字符,提交请求携带这个参数的值即可
	private static String sessionName = "JSESSIONID";
	
	public static void main(String[] args) {
		try {
            //获取 Cookie
			Connection.Response res = Jsoup.connect(baseUrl)
					.method(Method.GET)
					.execute();
			String sessionId = res.cookie(sessionName);
			System.err.println(sessionId);
			
            //登录请求提交
			Connection.Response login = Jsoup.connect(baseUrl + "loginAction.do")
					.header("Cookie", sessionName + "=" + sessionId)  //携带刚才的 Cookie 信息
					.data("zjh", "账号", "mm", "密码")
                    //这里的 zjh 和 mm 就是登录页面 form 表单的 name
					.method(Method.POST)
					.execute();
			
            //此时 sessionId 为可用状态
			Document scoreDoc = Jsoup.connect(scoreUrl).cookie(sessionName, sessionId).get();
			System.err.println(scoreDoc);
			
			System.err.println("-------------------");
			
            //注销请求
			Document logoutDoc = Jsoup.connect(logoutUrl).cookie(sessionName, sessionId).post();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}

    4、运行部分截图:

    上图中已经返回了 html 信息,这里只截取了一部分。demo 基本完成了。

    代码不算难,但是思路要注意:起初的思路是先执行登录请求,然后获取到 Cookie 后再获取数据,但是总是出现 “用户未登录” 类似的提示,思路改正为上面的即可。

参考:https://blog.csdn.net/npf_java/article/details/49094245

初学,欢迎批评指正。

转载于:https://my.oschina.net/patch/blog/1834854

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值