日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Java模拟登录正方教务管理系统

發(fā)布時(shí)間:2024/3/24 windows 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java模拟登录正方教务管理系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

這里我僅僅就說(shuō)說(shuō)怎么登錄,后續(xù)有時(shí)間再更新怎么查成績(jī)、課表等

工具

  • OkHttpClient(這個(gè)聯(lián)網(wǎng)框架還不錯(cuò))
  • 抓包工具(這里演示的是使用chrome自帶的)

流程簡(jiǎn)述

  • 抓包,查看請(qǐng)求頭,確定提交的信息
  • 構(gòu)建表單,請(qǐng)求頭

詳細(xì)流程

一、抓包

【不會(huì)的可以點(diǎn)這里】
這里的目標(biāo)鏈接:我們學(xué)校的正方管理系統(tǒng)
開(kāi)始:

我們點(diǎn)擊紅色框住的那個(gè)鏈接,就可以看到右邊的詳細(xì)信息了
我們來(lái)看看表單:

__VIEWSTATE:dDwyODE2NTM0OTg7Oz4H213j3BiKeXgjVheNPxLa8P8Bjw==//這貨我也不知道是啥,通過(guò)嘗試,直接傳一樣的就行 txtUserName:13408***//學(xué)號(hào) TextBox2:******//密碼 txtSecretCode:66mw//驗(yàn)證碼 RadioButtonList1:(unable to decode value)//RadioButton,亂碼,可以用URLEncoder.encode("學(xué)生", "gbk")代替 //下面四個(gè)不解釋,傳空值就行 Button1: lbLanguage: hidPdrs: hidsc:

再看看請(qǐng)求頭(鑒于篇幅,簡(jiǎn)要列幾個(gè)重要的屬性):

Content-Type:application/x-www-form-urlencoded Cookie:**** Host:*****

根據(jù)抓包,發(fā)現(xiàn)需要提交的信息有:form表單,請(qǐng)求頭得有Cookie。表單顯而易見(jiàn),那么Cookie從哪里來(lái)的呢—-這貨是獲取驗(yàn)證碼傳來(lái)的Cookie,所以我們還得請(qǐng)求一次驗(yàn)證碼的鏈接,拿到Cookie→驗(yàn)證碼圖片鏈接

二、構(gòu)建表單,獲取驗(yàn)證碼Cookie

構(gòu)建表單:

FormEncodingBuilder builder = new FormEncodingBuilder();builder.add("__VIEWSTATE","dDwyODE2NTM0OTg7Oz4H213j3BiKeXgjVheNPxLa8P8Bjw==");builder.add("txtUserName", studentId);builder.add("TextBox2", password);builder.add("txtSecretCode", check_code);builder.add("lbLanguage", "");builder.add("RadioButtonList1", URLEncoder.encode("學(xué)生", "gbk"));builder.add("Button1", "");builder.add("hidPdrs", "");builder.add("hidsc", "");RequestBody requestBody = builder.build();

獲取驗(yàn)證碼圖片并且返回拿到的Cookie:

public class DownloadImg {private static FileOutputStream fos;public static String downLoad(String url){OkHttpClient okHttpClient = new OkHttpClient();Request request = new Request.Builder().url(url).build();try {Response response = okHttpClient.newCall(request).execute();if(response.isSuccessful()){byte[] bytes = response.body().bytes();File file = new File("D:\\","check_code.png");//驗(yàn)證碼下載到本地,手動(dòng)輸入fos = new FileOutputStream(file);fos.write(bytes);fos.flush();String cookie = response.header("set-cookie");System.out.println("cookie:"+cookie);return cookie;}} catch (IOException e) {e.printStackTrace();}finally{try {fos.close();} catch (IOException e) {e.printStackTrace();}}return null;}

構(gòu)建請(qǐng)求頭:

final String cookie = DownloadImg.downLoad("這里寫(xiě)驗(yàn)證碼圖片的鏈接"); Request request = new Request.Builder().url(school_url).addHeader("Cookie", cookie).post(requestBody).build();

三、構(gòu)建完成開(kāi)始模擬登錄

okHttpClient.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Request request, IOException e) {System.out.println("登錄失敗");}@Overridepublic void onResponse(Response response) throws IOException {if (response.isSuccessful()) {System.out.println("登錄成功");String score_url = response.request().urlString();System.out.println(score_url);//Score(score_url, cookie);開(kāi)始進(jìn)行查成績(jī)操作}}});

然后就登錄成功了:

總結(jié)

總的來(lái)說(shuō)不是很多,關(guān)鍵要心細(xì),有耐心。不懂的地方大家下面留言,一起交流,一起進(jìn)步。

總結(jié)

以上是生活随笔為你收集整理的Java模拟登录正方教务管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。