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

xiaoxiao2025-11-12  10

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

这一篇就讲成绩查询

先上效果图:

登陆成后网页后,点击成绩查询页面,截下网络请求。如图:

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了
转载请注明原文地址: https://www.6miu.com/read-5039505.html

最新回复(0)