android 用(okhttp+jsoup+burp suite) 登陆(带cookie) 以及 获取正方教务系统成绩

本文详细介绍了一个成绩查询系统的实现过程,包括如何抓取网络请求、解析__VIEWSTATE值以及使用OkHttp进行POST请求来获取成绩数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前一篇完成了登陆部分登陆部分链接

这一篇就讲成绩查询

先上效果图:

登陆成后网页后,点击成绩查询页面,截下网络请求。如图:
在这里插入图片描述

gnmkdm=N121605 是固定的,__VIEWSTATE这个值是每次都变得所以要在get请求的代码如下

Request request = new Request.Builder().url(loginScoreUrl)
                .addHeader("Host", Constant.HOST)
                .addHeader("Referer", Constant.GET_LOGIN_URL+studentID)
                .addHeader("Cookie", Constant.sCookie).build();
        OkHttpClient okHttpClient = new OkHttpClient().newBuilder().cookieJar(mCookieJar).build();
        okHttpClient.newCall(request).enqueue(new Callback() {
        		//获取__VIEWSTATE的值
                String html = Objects.requireNonNull(response.body()).string();
                String viewstate = Jsoup.parse(html).select("input[name=__VIEWSTATE]").val();
                //传参数查成绩
                scoreSearch(xm, loginScoreUrl, viewstate);
        });

__VIEWSTATE获取到以后就是,请求成绩了

可以看出查询成绩是个post请求 所以和之前登陆的post请求一样,带着主体部分进行请求就好了,别忘了cookieJar
				ArrayList<String> arrayList = new ArrayList<>();
                String s = Objects.requireNonNull(response.body()).string();
                //jsoup解析html
                Document parse = Jsoup.parse(s);
                Elements alt = parse.getElementsByClass("datelist");
                Elements trs = alt.tagName("tr");
                for (Element tr  : trs) {
                    Elements tds = tr.getElementsByTag("td");
                    for (Element td : tds) {
                        arrayList.add(td.text());
                    }
                }
      ......//从arrayList拿出你想要的数据,封装到List<JavaBean>里面,再把List<JavaBean>数据给RecyclerView就O了   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值